【发布时间】:2015-09-27 18:38:37
【问题描述】:
所以,我用这个制作了一个 VLA:
int main()
{
const size_t LEN = 200; // as I know it's read-onlyy
int array[LEN];
}
所以我确定在 C1 中不再需要 VLA。在今天的 C99 中,它们是可选的...对于这个动机,不建议使用该代码。
但如果我这样做:
#define MYLEN 100
int main()
{
int xar[MYLEN];
}
或
int main()
{
int xar[100];
const size_t MYLEN = sizeof(xar) / sizeof(int);
}
我想我有:
- 在第一种情况下,我在编译时有一个常量变量,但它更符合逻辑且没有类型。
- 在第二种情况下,类型变量(只读)
但是使用define指令更有效,因为它是C语言的典型。你建议使用什么?
反正VLA可以用在main里面但是没那么有意义。
【问题讨论】:
-
这是基于某种观点的。
-
很难理解您问题中的所有内容。
-
@PCLuddite 你不明白什么?
-
考虑 this post 处理这两种方法之间的差异。
标签: c coding-style