我读过C89不支持可变长度数组,但是以下实验似乎证明了这一点:

#include <stdio.h>

int main()
{
   int x;
   printf("Enter a number: ");
   scanf("%d", &x);
   int a[x];
   a[0] = 1;
   // ...
   return 0;
}

当我这样编译时(假设文件名是va_test.c):
gcc va_test.c -std=c89 -o va_test

有用...

我想念什么? :-)

最佳答案

GCC始终支持可变长度数组AFAIK。将-std设置为C89不会关闭GCC扩展...

编辑:实际上,如果您在此处检查:

http://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html#C-Dialect-Options

在-std =下,您将找到以下内容:



密切注意“某些”一词。

关于c - C89中的可变长度数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4159746/

10-10 17:41