了解声明数组长度

时间:2015-09-27 18:38:38

标签: c coding-style

所以,我做了一个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可以在主要内部使用,但它没那么有意义。

1 个答案:

答案 0 :(得分:0)

发布的代码没有定义VLA,因为在编译时始终知道大小调整。

这将是VLA的一个例子:

int myFunction( int size )
{
    int myArray[size];
}