よくあるエラーメッセージ

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に変更

コメントを残す

メールアドレスが公開されることはありません。