次のコードをコンパイルすると、コンパイルエラーが発生します。
error: ‘for’ loop initial declarations are only allowed in C99 mode
for(int i = 0; i < 5; i++)
コードをコンパイルするには、このオプションを使用します:
note: use option -std=c99 or -std=gnu99 to compile your code
今私の質問は、上記のオプションを使用してc99とc11を有効にする方法ですか?
エラーメッセージに示されているように、-std=c99
または-std=gnu99
を使用してコードをコンパイルする必要があります。したがって、たとえば、ファイルはfilename.c
であり、次を使用してコンパイルします。
gcc -std=c99 filename.c
エラーがなければバイナリa.out
を生成します。このオプションを使用したくない場合は、次のようにi
ループの前にfor
を宣言できます。
int i;
for(i = 0; i < 5; i++)
次を使用してコンパイルします。
gcc filename.c