在编译C90代码时,在gcc编译器中获取警告"ISO C90禁止可变大小数组"

the*_*tna 3 c89 gcc-warning

我正在用gcc编译我的C90 c代码.我ISO C90 forbids variable-size array在发表声明时收到了警告

int symbols[nc];

其中nc是整数,其值从输入文件中读取.输入文件的值是变化的,所以我不能保持一个恒定的值.我怎么能摆脱它?确实有必要解决这个警告,或者我们可以忽略它吗?

提前致谢.

nos*_*nos 5

您得到该警告,因为C90不支持可变长度数组.

您必须使用-std = c99或std = gnu99命令行标志将gcc切换到C99模式(支持vla),或者重写代码以动态分配内存或使用固定大小的数组.

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

  • 如果gcc是唯一能够看到此代码的编译器,那么在调用中添加`-Wno-vla`比忽略警告的习惯更安全. (2认同)