Cのプログラミングは初めてです。このプログラムの何が問題なのか、なぜこのエラーが発生するのか教えてください:error C2143:syntax error:missing ';' 「タイプ」の前....
extern void func();
int main(int argc, char ** argv){
func();
int i=1;
for(;i<=5; i++) {
register int number = 7;
printf("number is %d\n", number++);
}
getch();
}
私は少なくとも8年間ビジュアルを使用していませんが、Visualの限定的なCコンパイラサポートでは、コードと変数を混在させることはできません。 _int i=1;
_の宣言のエラーの行は?? func();
への呼び出しの上に移動してみてください
また、extern void func(void);
を使用します
Visual StudioはC89のみをサポートします。つまり、すべての変数は、関数の先頭にある他のものよりも先に宣言する必要があります。
編集:@KeithThompsonは私にもっと技術的に正確な説明を追加するように促しました(そして、本当に私のものが1つの点ではない場合は本当に正しいです)。 (変数またはその他の)すべての宣言は、ブロック内のすべてのステートメントの前になければなりません。
この:
int i=1;
for(;i<=5; i++) {
次のように慣用的に書かれるべきです:
for(int i=1; i<=5; i++) {
関数スコープでfor
ループ変数を宣言するポイントがないためです。