私はC言語に新しく、次のコードをC言語でコンパイルしようとしたときにエラーが発生するのを理解するのに苦労しています。エラーエラーメッセージC言語での変数宣言
void f(void) {
int i;
i = 6;
int j;
j = 20;
}
私はC言語に新しく、次のコードをC言語でコンパイルしようとしたときにエラーが発生するのを理解するのに苦労しています。エラーエラーメッセージC言語での変数宣言
void f(void) {
int i;
i = 6;
int j;
j = 20;
}
すべての宣言は、関数の先頭になければなりません。 C99のような後のバージョンでは、C宣言はコードのどこにでも置くことができます。あなたは古いコンパイラを持っていると思います。
void f(void) {
int i;
int j;
i = 6;
j = 20;
}
にコードを変更し
。この問題が発生しないようにするには、新しいコンパイラに切り替えます。
コンパイラがc98の後でcコードをコンパイルするように設定されている場合、このエラーが発生します。これは、c98の標準に従って、変数のデカルーションが最初に行われなければならないからです。コードの
しかし、標準のc99に従ってコードをコンパイルするオプションを選択することができます。この場合、コードの途中で変数のデクラレーションを行うことができます。
標準Cでは、実行可能なステートメントの前にすべての変数を宣言する必要があります。したがって、 'j'は' i = 6; 'の前に宣言されなければなりません。 – DyZ
[これは正常にコンパイルされます](http://ideone.com/HbMeQI)。 – dasblinkenlight
@DYZ C標準の古い*変種。 「現代の」C(C99のように、おそらく以前は?)はそれを必要としません。 –