3

C90cコードをgccでコンパイルしています。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 に答える