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コマンドでのコンパイルに成功した。
13歳からはじめるゼロからのC言語ゲームプログラミング教室 入門編 わくわくゲームプログラミング教室
14歳からはじめるC言語わくわくゲームプログラミング教室 Visual Studio 2013編
速習C言語入門 [第2版] 脳に定着する新メソッドで必ず身につく