2011-01-23 10 views
3

gccでC90コードをコンパイルしています。 NCは値の入力ファイルから読み込まれる整数であるC90コードのコンパイル時にgccコンパイラで「ISO C90が可変サイズ配列を禁止する」という警告を表示する

int symbols[nc];

のような宣言をしながら、私は警告ISO C90 forbids variable-size array取得しています。私は一定の値を保持することはできませんので、入力ファイルの値が変更されています。どうすればそれを取り除くことができますか?実際にこの警告を解決する必要があるのでしょうか、それとも単に無視することはできますか?

ありがとうございます。

答えて

5

C90はvariable length arraysをサポートしていないため、警告が表示されます。

-std = c99またはstd = gnu99コマンドラインフラグを使用してgccをC99モード(vlaをサポート)に切り替えるか、コードを書き直してメモリを動的に割り当てるか、または固定サイズを使用する必要がありますアレイ。

警告では、この場合C90に準拠していないと伝えられますが、それ以外は安全です。しかし、警告を無視することは本当にオプションではありません。

+2

gccがこのコードを見る唯一のコンパイラである場合、 '-Wno-vla'を呼び出しに追加することは、警告を無視する習慣に入るよりも安全です。 –

+0

ありがとうクリストファー。このトピックのすべてのGoogle検索結果の中で、あなたはこのオプションについて語る唯一の人です。 – shuhalo