今日は、C プログラミングでよくある問題、つまり関数が値を返さないことによって引き起こされる構文エラーと、その修正方法について見ていきます。
C プログラミングでは、関数を定義し、プログラム内の別の場所で呼び出す必要がよくありますが、このとき、関数の戻り値に注意する必要があります。関数が戻り値を持つように定義されている場合、関数の実行後に対応する値が返される必要があります。そうしないと、コンパイラは「関数には戻り値がありません」というエラーを発行します。
ここで、簡単な例を見てみましょう:
#include <iostream> using namespace std; int sum(int a, int b) { int c = a + b; } int main() { int a = 1, b = 2; int result = sum(a, b); cout << result << endl; return 0; }
上記のコードでは、2 つの整数の合計を計算するために使用される関数 sum を定義します。ただし、関数の実装では、2 つの数値の合計を計算するだけで、それを返しませんでした。したがって、コンパイル時に、コンパイラはエラーを表示します。
错误 C4716: 'sum': 必须返回值
このエラーを修正するには、関数 sum に戻り値を追加します。この例では、2 つの数値の合計を返す必要があるため、関数宣言を次の形式に変更できます:
int sum(int a, int b) { int c = a + b; return c; }
この時点で、コードを再度コンパイルするときに、「関数」を回避します。戻り値がありません」という構文の間違いです。
関数に戻り値を追加するだけでなく、 void キーワードを使用して戻り値のない関数を定義することもできます。 void キーワードは、関数宣言と関数定義の両方で必要です。変更されたコードは次のとおりです。
#include <iostream> using namespace std; void printMessage() { cout << "Hello World!" << endl; } int main() { printMessage(); return 0; }
この例では、戻り値のない関数 printMessage を定義して、メッセージを出力します。関数自体には戻り値がないため、関数本体に return ステートメントを追加する必要がないことに注意してください。
つまり、戻り値のある関数を定義する場合でも、戻り値のない関数を定義する場合でも、「関数には戻り値がありません」というエラーを避けるために、コードを記述する際にはその構文構造に注意する必要があります。
以上がC++ 構文エラー: 関数に戻り値がありません。どのように変更すればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。