よくある質問(FAQ)

for文内で定義した変数「for (int i = 0; …)」で、解析エラーが発生しました。

解析エラーの回避策について

質問

for文内で定義した変数で「Expressionを記述すべき所に記述されていません」エラーが発生しました。
回避策を教えてください。「言語設定」は ANSI-C です。

■記述例
for (int i = 0; i < 10; i++) {...}

■解析エラー
CasePlayer2-E-SYN : Expressionを記述すべき所に記述されていません.
  C:\XXXXXXXXX\YYYYYYYY\ソースファイル名.c(行番号)
CasePlayer2-E-SYN : 名前( i )が宣言されていません.
   |

回答

本エラーは「for (int i=0;...)」という表記が ANSI-C 標準仕様に違反しているため発生しています。ANSI-C では、関数内の実行可能文の前に全てのローカル変数の宣言をすることが規定されています。

■回避策
「言語設定」を ANSI-C から C99 (又は GNU-C)へ 変更することでエラー回避できます。(※ Cオプションパラメータ でエラー回避することはできません)