|
|
|
全角スペースが入っている |
test.c: In function `main': test.c:3: error: stray '\129' in program test.c:3: error: stray '@' in program3行目のプログラムの字を出力する個所以外に全角スペースが入っている。
→3行目に移動カーソルを移動させ、カーソルの形が 大きくなった場所に全角の スペースがあるので、半角に置きかえる。
セミコロンがない |
test.c: In function `main': test.c:4: error: parse error before "for" test.c:4: error: parse error before ')' token4行目の前が parse errorなので、 直前の3行目にセミコロンがあるか確かめる。
meadow でプログラムを作成している場合は、4行目にTabを入れたときに、 セミコロンを忘れると、思ったところより右にくる 。 (その機能を利用すべき。人間の目でチェックするのは限界があるので機械に確 かめてもらった方が良いことがよくある)
関数が定義されていない |
/cygdrive/c/DOCUME~1/nakata/LOCALS~1/Temp/ccrcVT0r.o:test.c:(.text+0x63): undefined reference to `_print' collect2: ld returned 1 exit status_printという関数が定義されていない (undefined)と怒られているので定義する。多くの場合、
print→printfとすれば大丈夫。使用する関数の名前が正しいかチェックする。
引数の数が多い |
test.c: In function `main': test.c:6: error: too many arguments to function `puts'putsは引数が1つが正しい使用法であるにも かかわらず
puts("sum = %f\n", sum);のような書き方をしている。 printf と区別するようにマニュアルをよく読むこ と。
|
scanfに関して「&」がない |
scanf("%d", i); /* &i となっていない */
gcc では何も文句は言われませんが、a.exe を行うときに core を dump されます(メモリの中の状態をファイルに吐き出し ています)。
== 演算子に関して |
and 演算子に関して |
else にも条件を書く |
if( a == b ) printf("test1\n"); else (b == c) /* b == c は書かない */ printf("test2\n");
ついつい else にも条件を書いてしまうこともあるが、 else とはその他の意味 なので条件を書いてはいけない。
|
コメント行が終わっていない |
/* 中略 /*のように書くと「中略」はコメントされない。
meadow でプログラムを作成している場合は、普通にしておけば int や return 等(予約語と言います)の色が変わって表示されるので、 全て茶色で表示されている場合は注意が必 要。
ファイル名に「.c」がない |