リターンステートメント(C)

  • 06|10/2020
  • 読むのに4分
    • c
    • n
    • n
    • m
    • g
    • s

areturnreturnステートメントは、呼び出し元の関数に値を返すことができます。 詳細については、”戻り値の型”を参照してください。

構文

jump-statement:
returnexpressionopt;

expressionの値は、存在する場合、関数を呼び出す。 Expressionが省略された場合、関数の戻り値は未定義です。 式が存在する場合は、評価され、関数によって返される型に変換されます。 returnvoid戻り値の型を持つ関数内の式が含まれている場合、コンパイラは警告を生成し、式は評価されません。

returnvoidvoidreturnvoid戻り値の型を持つように宣言します。 戻り値の型が指定されていない場合、Cコンパイラはintのデフォルトの戻り値の型を想定します。

多くのプログラマは、returnステートメントの式引数を囲むために括弧を使用します。 ただし、Cは括弧を必要としません。

コンパイラは、returnステートメントの後に置かれたステートメントを検出すると、到達不能コードに関する警告診断メッセージを発行することがp>

mainreturnステートメントと式はオプションです。 戻り値が指定されている場合、戻り値に何が起こるかは実装によって異なります。 Microsoft固有:Microsoft Cの実装は、cmd.exereturn式が指定されていない場合、Microsoft Cランタイムは成功(0)または失敗(ゼロ以外の値)を示す値を返します。

この例は、いくつかの部分で一つのプログラムです。 これは、returnステートメントと、関数の実行を終了するため、および必要に応じて値を返すために使用される方法を示しています。

// C_return_statement.c// Compile using: cl /W4 C_return_statement.c#include <limits.h> // for INT_MAX#include <stdio.h> // for printflong long square( int value ){ // Cast one operand to long long to force the // expression to be evaluated as type long long. // Note that parentheses around the return expression // are allowed, but not required here. return ( value * (long long) value );}

square関数は、算術エラーを防ぐために、より広い型で、その引数の二乗を返します。 Microsoft固有:Microsoft C実装では、long longint値の積を保持するのに十分な大きさです。

returnsquarereturnステートメントでは必要ありません。p>

double ratio( int numerator, int denominator ){ // Cast one operand to double to force floating-point // division. Otherwise, integer division is used, // then the result is converted to the return type. return numerator / (double) denominator;}

ratiointdoublereturndoubleにキャストすることにより、浮動小数点演算を使用するように強制されます。 それ以外の場合は、整数除算演算子が使用され、小数部は失われます。p>

void report_square( void ){ int value = INT_MAX; long long squared = 0LL; squared = square( value ); printf( "value = %d, squared = %lld\n", value, squared ); return; // Use an empty expression to return void.}

report_squaresquareINT_MAXintINT_MAXintlong longsquaredreport_squarevoidreturnステートメントに式がありません。P>

void report_ratio( int top, int bottom ){ double fraction = ratio( top, bottom ); printf( "%d / %d = %.16f\n", top, bottom, fraction ); // It's okay to have no return statement for functions // that have void return types.}

report_ratioratio1INT_MAXfractionreport_ratiovoidreport_ratioの実行は”底から落ち”、呼び出し元に値を返しません。P>

int main(){ int n = 1; int x = INT_MAX; report_square(); report_ratio( n, x ); return 0;}

mainreport_squarereport_ratioreport_squarevoidreport_ratiovoidmain0C_return_statement.cという名前のソースコードファイルを作成します。 次に、表示されている順序で、すべてのサンプルコードをコピーします。 ファイルを保存し、次のコマンドを使用して開発者のコマンドプロンプトウィンドウでコンパイルします。

cl /W4 C_return_statement.c

次に、サンプルコードを実行するには、コマンドプロンプトでC_return_statement.exeと入力します。 この例の出力は次のようになります。

Related Posts

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です