3

我正在 gcc 中编译我的 C90 c 代码。我ISO C90 forbids variable-size array在做出类似声明时收到警告

int symbols[nc];

其中 nc 是整数,其值是从输入文件中读取的。输入文件上的值是多种多样的,所以我不能保持一个恒定的值。我怎样才能摆脱它?是否确实有必要解决此警告,或者我们可以简单地忽略它?

提前致谢。

4

1 回答 1

5

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

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

警告只是告诉您在这种情况下您不符合 C90,但在其他方面它是安全的。不过,忽略警告实际上不应该是一种选择。

于 2011-01-23T17:25:39.687 回答