[解決済み] error: 'for' loop initial declarations are only allowed in C99 mode [duplicate].
2022-03-06 08:51:47
質問
以下のエラーが発生するのですが、std=c99/std=gnu99モードとは何ですか?
ソースコード
#include <stdio.h>
void funct(int[5]);
int main()
{
int Arr[5]={1,2,3,4,5};
funct(Arr);
for(int j=0;j<5;j++)
printf("%d",Arr[j]);
}
void funct(int p[5]) {
int i,j;
for(i=6,j=0;i<11;i++,j++)
p[j]=i;
}
Error Message:
hello.c: In function ‘main’:
hello.c:11:2: error: ‘for’ loop initial declarations are only allowed in C99 mode
for(int j=0;j<5;j++)
^
hello.c:11:2: note: use option -std=c99 or -std=gnu99 to compile your code`
解決方法は?
これは、forループの中で変数を宣言することが、C99(1999年に発行されたCの規格)までは有効なC言語ではなかったためです。他の人が指摘したように、カウンターをforの外で宣言するか、-std=c99フラグを使って、この規格を使っていることをコンパイラに明示的に伝え、そのように解釈してもらうかどちらかです。
関連
-
[解決済み】Cコンパイルエラー。"変数サイズのオブジェクトが初期化されていない可能性がある"
-
[解決済み】変数の警告が設定されているが使用されていない
-
[解決済み】エラー:'for'ループの初期宣言はC99モードでしかできない【重複
-
[解決済み] C: エラー: ';'トークンの前に ')' があると予想される
-
[解決済み】警告:引数「互換性のないポインタ型から」を渡す[デフォルトで有効]。
-
[解決済み] char pointers: 'char*' から 'char' への無効な変換?
-
[解決済み】なぜか。"エラー: 配列型を持つ式への代入"
-
[解決済み】makefile:4。*** missing separator. 停止する
-
[解決済み】whileループの時間複雑性(Big O)はどうやったらわかるの?
-
[解決済み] for loop initial declaration used outside C99 mode" GCCエラーを修正するにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] c - 初期化がキャストなしでポインタから整数を作る、さらに2つのコンパイラーエラー
-
[解決済み】 `S_ISREG()` とは何ですか、そして何をするのですか?
-
[解決済み】"Expected expression before ' { ' token"(トークンの前に期待される式)。
-
[解決済み】GCC Cコードで静的宣言が非静的宣言に続くことを解決するには?
-
[解決済み】初期化がキャストなしで整数からポインタを作成 - C言語
-
[解決済み】メモリー・クロバリング・エラー
-
[解決済み】サイズ8の無効な読み取り - Valgrind + C
-
[解決済み】0LLや0x0ULの意味は何ですか?
-
[解決済み】なぜか。"エラー: 配列型を持つ式への代入"
-
[解決済み】宣言指定子で2つ以上のデータ型がある場合のエラー【非公開