このエラーメッセージは、C言語で for
文の初期化部分に変数宣言を行う場合に表示されます。
例えば、以下のようなコードでエラーが発生した場合
for (int i = 0; i < 10; i++) { printf("%d\n", i); }
エラーメッセージは以下のようになります。
error: 'for' loop initial declarations are only allowed in C99 mode
このエラーの原因は、C言語の規格であるC89では、for
文の初期化部分に変数宣言が許されていないためです。C99以降では、for
文の初期化部分に変数宣言が許されるようになりましたが、C89ではこのような書き方はエラーとなります。
正しいコードは以下のようになります。
int i; for (i = 0; i < 10; i++) { printf("%d\n", i); }
C89では、for
文の初期化部分に変数宣言を行わず、変数宣言を冒頭に行うように書く必要があります。C99以降では、上記の例のように書くことができます。
コメント