【C言語】number of arguments doesn’t match prototype

「number of arguments doesn’t match prototype」というエラーメッセージは、関数の引数の数がプロトタイプ宣言と一致しない場合に表示されます。これは、関数は、特定の処理を行うためのプログラムの部品です。そのため、関数を呼び出す側と、関数本体では、引数の個数が一致している必要があります。

例えば、次のようなコードでは、関数fooの引数の数がプロトタイプ宣言と一致しないため、このようなエラーが表示されます。

void foo(int x); // 関数fooのプロトタイプ宣言

int main() {
    foo(1, 2); // エラー: 引数が2個ありますが、プロトタイプ宣言では1個しかありません

    return 0;
}

void foo(int x) {
    // 関数fooの処理
}

正しい使い方は、次のように、プロトタイプ宣言と関数本体で引数の数が一致するようにすることです。

void foo(int x, int y); // 関数fooのプロトタイプ宣言

int main() {
    foo(1, 2); // 正しい使い方: 引数が2個あります

    return 0;
}

void foo(int x, int y) {
    // 関数fooの処理
}

コメント

タイトルとURLをコピーしました