|
===================================== 〔語彙分解〕的な部分一致の検索結果は以下の通りです。 ・ 値 : [あたい, ね] 【名詞・形容詞】1.value, variable 2. price, cost 3. worth, merit
return文(リターンぶん)とは、プログラミング言語における、文の一つである。サブルーチンからの復帰に使われ、復帰と同時に値を返すことができる。その値は戻り値(もどりち)または返り値(かえりち)と呼ばれる。 == 言語別の意味や構文 == === C/C++ === C及びC++に於いて、return文とは、関数を実行した結果や、その処理が成功したかどうか等を示すデータを、呼び出し元に渡すと共に、その関数を終了させるはたらきを持つ文である。return文によって、関数の呼び出し元にデータを渡す事を、値を返すと言う。 return文によって返される値の型は、関数の定義時やプロトタイプ宣言時に指定する。例えば、 int main(void) という宣言は、int型の値を返すことを表す。 return文は、以下の様に書く。 return 式; 式には、戻り値を指定する。この式は、構文上省略可能であるが、意味解析の段階において、C99及びC++98では、戻り値の型がvoid(値を返さない)と定義されている場合を除いて、式の省略はできない(C++では挙動が不定)と定められている(X3010 105頁 6.8.6.4、79頁6.6.3 2節参照)。 return文の式では、その式の結果の型が関数の戻り値の型へ暗黙的に変換できなければならない(X3010 105頁 6.8.6.4、79頁6.6.3 2節参照)。 return文に遭遇しないまま関数の終わりまでプログラムが実行された場合、そこに式を省略したreturn;が行われたと見なされる。ただし、C99とC++98では、main関数に限り、そのmain関数の戻り値の型がintであればreturn 0;があったと見なされる(X3010 9頁 5.1.2.2.3、X3014 35頁 3.6.1 5節参照) 戻り値の型がvoidである関数で式を指定することは、Cだと意味解析でできないとされているが、現在のC++では、結果がvoid型になる式であれば良いとされている(X3014 79頁 6.6.3 3節参照)。このためテンプレートでより汎用性を持たせることが可能になっている。 template もし、テンプレート引数Tにint型を返す関数を与えてこの関数テンプレートfunc_callを実体化させると、概念的には次のようになる。 //擬似コード int func_call(int fn()) そして、戻り値の型がvoid型の関数を与えると、やはり概念的には次のようになる。 //擬似コード void func_call(void fn()) ここでfn()の型はvoid型になるが、func_callの戻り値の型もvoidであるため、基の関数テンプレートfunc_callに戻り値の型がvoid型の関数を与えてもコンパイル可能である。仮にこれが認められず、Cのように戻り値の型もvoidの関数内では、式を省略したreturn文しか許されないとすると、基のfunc_callに対して次のような特殊化を用意しなければならない。 template<> void func_call(void ( *fn)()) 一部の古いC++コンパイラでは、void型の式をreturnに書けず、実際にこのような対策を取る必要があった。なお、この特殊化では、関数オブジェクトを対象にしていない。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Return文」の詳細全文を読む 英語版ウィキペディアに対照対訳語「 Return statement 」があります。 スポンサード リンク
|