我正在 gcc 中编译我的 C90 c 代码。我ISO C90 forbids variable-size array
在做出类似声明时收到警告
int symbols[nc];
其中 nc 是整数,其值是从输入文件中读取的。输入文件上的值是多种多样的,所以我不能保持一个恒定的值。我怎样才能摆脱它?是否确实有必要解决此警告,或者我们可以简单地忽略它?
提前致谢。
我正在 gcc 中编译我的 C90 c 代码。我ISO C90 forbids variable-size array
在做出类似声明时收到警告
int symbols[nc];
其中 nc 是整数,其值是从输入文件中读取的。输入文件上的值是多种多样的,所以我不能保持一个恒定的值。我怎样才能摆脱它?是否确实有必要解决此警告,或者我们可以简单地忽略它?
提前致谢。
您会收到该警告,因为 C90 不支持可变长度数组。
您要么必须使用 -std=c99 或 std=gnu99 命令行标志将 gcc 切换到 C99 模式(支持 vla),要么重写代码以动态分配内存或使用固定大小的数组。
警告只是告诉您在这种情况下您不符合 C90,但在其他方面它是安全的。不过,忽略警告实际上不应该是一种选择。