error C2143の傾向と対策:変数の定義位置がおかしいかも
Cプログラムを書いているとしょっちゅうC2143エラーに遭遇します。
error C2143: 構文エラー : ';' が '型' の前にありません。
一番多い原因は、おそらく変数の定義位置がブロック先頭にないことだと思います。
int main(void){ int a = 0; ++a; int b = 0; // C2143: 定義位置がブロック先頭ではない return 0; }
エラーを取り除くためには以下のように書かないといけません。
int main(void){ int a = 0; int b = 0; ++a; return 0; }
これはVisual Studio 2012以前のVC++コンパイラがC99規格に完全対応していなかったのが原因です。Visual Studio 2013ではC99への対応が進んだらしく、冒頭のコードでC2143エラーは発生しません。