C言語の授業でCodeblocksを使っています。そのコンパイラはgccで英語のエラーメッセージが初心者には難解で意味不明です。ここでは、その意味と解決法をまとめます。
例1
#include
#include
int main()
{
printf("Hello world!\n");
return 0;
}
||=== c1, Debug ===|
C:\myprog\c1\main.c||In function 'main':|
C:\myprog\c1\main.c|6|error: stray '\201' in program|
C:\myprog\c1\main.c|6|error: stray '@' in program|
||=== Build finished: 2 個のエラー、 0 個の警告 ===|
- 原因:全角空白文字が入っている。Codeblocksのエディタは全角空白文字が見えないので、コメントに日本語を使わないことをお勧めします。
- 解決方法: エラー行と1行上の行の全ての空白を削除して、空白部分に半角スペースを挿入する
例2
int main()
{
double r, pi = 3.14
printf("Input radius:");
scanf("%lf", &r); //引数にアドレス演算子&を付ける
printf("area=%f \n", pi*r*r); //円の面積を計算
return 0;
}
C:\myprog\c2\main.c||In function 'main':|
C:\myprog\c2\main.c|7|error: expected ',' or ';' before 'printf'|
- 訳: printfの前に;(セミコロン)または,(カンマ)が期待される
- 原因と解決:printfの前にセミコロンがなかったので、挿入する
例3
int main()
{
int i, n = 30;
double sum = 1.0; // 階乗は42億以上なるのでint型は不可
four (i = n; i > 0; i--)
{
sum *= i;
}
printf("Sum is %f\nSum is %e\n", sum,sum);
return 0;
}
C:\myprog\c8\main.c||In function 'main':|
C:\myprog\c8\main.c|9|warning: implicit declaration of function 'four'|
C:\myprog\c8\main.c|9|error: expected ')' before ';' token|
C:\myprog\c8\main.c|10|error: expected ';' before '{' token|
C:\myprog\c8\main.c|7|warning: unused variable 'sum'|
||=== Build finished: 2 個のエラー、 2 個の警告 ===|
- 原因:forをfourと打ち間違えた
- 解決法:fourをforに変更

コメント