收到警告” ISO C90 禁止可变大小数组”在 gcc 编译器中编译 C90 代码
我正在 gcc 中编译我的 C90 c 代码。在进行如下声明时,我收到警告 ISO C90 禁止可变大小数组
,
其中 nc 是整数,其值是从输入文件读取的。输入文件上的值各不相同,因此我无法保持恒定值。我怎样才能摆脱它?确实有必要解决这个警告还是我们可以简单地忽略它?
提前致谢。
I am compiling my C90 c code in gcc . I am getting the warningISO C90 forbids variable-size array
while making the declaration like
int symbols[nc];
Where nc is integer whose value is read from the input file. The values on the input files are varied so i can't keep a constant value. How can I get rid of it? Is it indeed necessary to resolve this warning or we can simply ignore it?
Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您收到该警告是因为 C90 不支持可变长度数组。
您必须使用 -std=c99 或 std=gnu99 命令行标志将 gcc 切换到 C99 模式(支持 vla),或者重写代码以动态分配内存或使用固定大小的数组。
该警告只是告诉您在这种情况下您不符合 C90,但在其他方面它是安全的。不过,忽略警告确实不应该是一种选择。
You get that warning because C90 does not support variable length arrays.
You'll either have to switch gcc to C99 mode (which does support vla) , by using the -std=c99 or std=gnu99 command line flag, or rewrite your code to dynamically allocate memory or use a fixed size array.
The warning just tells you that you're not conforming to C90 in this case, but it's otherwise safe. Ignoring a warning should really not be an option though.