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に変更
コメント