C言語のコンパイルエラー「undeclared (first use in this function)」の原因

C言語で書いたソースファイルtest.cをLinux(CentOS 6.4)のgccコマンドでコンパイルしようとすると、

undeclared (first use in this function)

というエラーが発生した。

[root@test test]# gcc test.c
test.c: In function 'main':
test.c:4: error: 'i' undeclared (first use in this function)
test.c:4: error: (Each undeclared identifier is reported only once
test.c:4: error: for each function it appears in.)

ソースファイルtest.cを確認する。

《ソースファイルtest.cの中身》
#include

int main(void){
for(i=0;i<10;i++){
printf("*");
}
}

コンパイルエラーのエラーメッセージとソースファイルを見比べる。

エラーメッセージ:test.c:4: error: 'i' undeclared (first use in this function)の意味は、

「test.c」の4行目で、「i」が宣言されていない(この関数内で初めて使用)』誤りがある、

だ。

変数として「i」を使用したいのであれば、iの変数宣言をしなくてはいけないのだが、それを忘れていたようだった。

ソースファイルtest.cを以下のように修正する。

《修正後のtest.cファイル》
#include

int main(void){
int i;
for(i=0;i<10;i++){
printf("*");
}
}

for文の直前にint型で変数iを宣言する「int i;」を一文追加した。

このソースファイルだと、gccコマンドでのコンパイルに成功した。


12歳からはじめるゼロからのC言語ゲームプログラミング教室



13歳からはじめるゼロからのC言語ゲームプログラミング教室 入門編 わくわくゲームプログラミング教室



14歳からはじめるC言語わくわくゲームプログラミング教室 Visual Studio 2013編



速習C言語入門 [第2版] 脳に定着する新メソッドで必ず身につく

前へ

Linux(CentOS 6) - yum installコマンドでgccパッケージをインストールする

次へ

CentOS 6.4(64ビット版)でC言語を使用した場合のint型の最大値と最小値