2011-01-23 564 views
3

我在gcc中编译我的C90 c代码。同时使像编译C90代码时在gcc编译器中获取警告“ISO C90禁止使用可变大小的数组”在编译C90代码时

int symbols[nc];

其中NC是整数,其值从输入文件中读取的声明我收到警告ISO C90 forbids variable-size array。输入文件的值是不同的,所以我不能保持一个常数值。我怎样才能摆脱它?是否有必要解决这个警告,或者我们可以忽略它?

在此先感谢。

回答

5

由于C90不支持variable length arrays,您会收到该警告。

通过使用-std = c99或std = gnu99命令行标志,或者重写代码以动态分配内存或使用固定大小,您将不得不将gcc切换到C99模式(支持vla)阵列。

警告只是告诉你,在这种情况下你不符合C90,但它是安全的。忽略警告应该不是一个选项。

+2

如果gcc是唯一能够看到这段代码的编译器,那么在调用中加入`-Wno-vla`比养成忽略警告的习惯更安全。 – 2011-01-23 18:00:26