C++ コンパイル エラー: 関数パラメータが間違っています。修正方法は?

WBOY
リリース: 2023-08-21 20:26:25
オリジナル
2202 人が閲覧しました

C は、ソフトウェア開発やシステム プログラミングで広く使用されている人気のあるプログラミング言語です。 C コンパイラはソース コードを解析するときに、コードの構文とセマンティクスをチェックし、実行可能ファイルまたはライブラリを生成します。コンパイラは問題が発生すると、特定のエラー メッセージを出力して、エラーの特定の場所と原因をプログラマに伝えます。この記事では、一般的な C コンパイル エラー (関数パラメーターの間違い) について説明し、その修正方法を検討します。

1. エラー メッセージの例

以下は簡単な C プログラムで、コンパイル時に発生するエラーの例です。エラー メッセージが表示されます:

#include <iostream>
using namespace std;

int sum(int a, int b) {
    return a + b;
}

int main() {
    int c = sum(1, "2");
    cout << "c= " << c << endl;
    return 0;
}
ログイン後にコピー

このエラー メッセージは、sum 関数が main 関数で呼び出され、2 つのパラメータ 1 と "2" が渡されたことを示します。ただし、2 番目のパラメーターの型は int ではなく const char* です。コンパイラは文字列定数を整数型に変換できなかったため、上記のコンパイル エラーが報告されました。

2. エラーを解決するにはどうすればよいですか?

間違った関数パラメータは C プログラムでよくあるエラーの 1 つですが、通常は簡単に修正できます。解決策は次のとおりです。

関数呼び出しでのパラメーターの型の変更
  1. 上記の例では、2 番目のパラメーターの型を int に変更することで、エラーを解決できます。変更されたプログラム コードは次のとおりです。
main.cpp: In function ‘int main()’:
main.cpp:8:22: error: invalid conversion from ‘const char*’ to ‘int’ [-fpermissive]
    int c = sum(1, "2");
                      ^
ログイン後にコピー

このコードでは、2 番目のパラメーターを整数型に変更しているため、コンパイル エラーが回避され、プログラムは正常にコンパイルして実行できます。

関数定義のパラメーターの型を変更する
  1. もう 1 つの回避策は、関数定義のパラメーターの型を変更することです。上の例では、両方とも int 型の 2 つのパラメーターを期待する sum 関数を定義しました。呼び出し元が間違ったパラメーターの型を渡した場合、コンパイラーはエラーに関する情報を報告します。異なる型のパラメータを渡したい場合は、関数定義でパラメータの型を変更する必要があります。

たとえば、上記の例の 2 番目のパラメーターとして float を渡したいとします。次に、関数定義を次のように変更します。

#include <iostream>
using namespace std;

int sum(int a, int b) {
    return a + b;
}

int main() {
    int c = sum(1, 2);
    cout << "c= " << c << endl;
    return 0;
}
ログイン後にコピー

上記のコードでは、sum 関数の 2 番目のパラメーターの型を float に変更します。 main 関数では、浮動小数点数 2.5f を 2 番目のパラメータとして渡しました。関数定義内のパラメーターの型が実際に転送されるパラメーターの型と一致するため、コンパイラーはエラーに関する情報を報告しなくなりました。

3. 概要

間違った関数パラメーターは、C プログラミングで最も一般的なエラーの 1 つである可能性があります。これは通常、関数パラメータのタイプが正しくないか、不一致であることが原因で発生します。このタイプのエラーを解決するには、コンパイラのエラー メッセージを確認し、関数呼び出しのパラメーターの型または関数定義のパラメーターの型を正しい型に変更してみてください。 C コンパイル エラーの原因と解決策を理解することで、より高品質な C プログラムを作成できるようになります。

以上がC++ コンパイル エラー: 関数パラメータが間違っています。修正方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート