18

私は PHP にかなり精通していますが、C にも手を出し始めました。

return 0;

値を返さない関数の最後。関数に戻り値がない場合、値 NULL が自動的に返されるため、これは PHP では使用されません。

私が尋ねているのは、簡単な英語で、return 0実際には何をしているのかということだけです. 関数呼び出しの値として引数を返す PHP のようなものですか? それはただの良い習慣ですか?

この質問は以前にも何度も聞かれたことは知っていますが、私は PHP 開発者の観点から質問しています。グーグルが投げかけた答えはそれほど簡潔ではありませんでした。

4

6 に答える 6

20

関数呼び出しの値として引数を返すphpのようなものですか?それはただの良い練習ですか?

returnはい、PHP や他の多くの言語は、 'C' からキーワードを借りてきました。そして、すべての言語で、returnキーワードには同じ機能があります-関数から戻ることです。returnキーワードに続くものはすべて、呼び出し元に返される値です。

それは良い習慣ですか?はい、いいえ。すべての関数が値を返す必要はありません。また、標準ライブラリのかなりの数でさえ、値を返しません。したがって、戻り値の型はvoidです。

ただし、プログラムが正常に実行されたことを識別するために、関数は(また) をmain返す必要があります。それ以外の場合は -1 (また)0EXIT_SUCCESSEXIT_FAILURE

編集:(@KeithThompsonに感謝):

EXIT_FAILURE実装定義です。1は一般的な値ですEXIT_FAILUREが、要点は、知る必要はありません。

于 2013-02-18T02:26:29.193 に答える
8

歴史的な理由から、次のようreturn 0;に宣言された関数から戻るように書くことができます。void

void foo( /* arguments */ )
{
  /* do things */
  return 0;
}

これは何もせず、0(またはそこに置いたものは何でも) 破棄されます。また、賢明なコンパイラは、これを行うと警告メッセージを表示します。だから、これをしないでください。

于 2013-02-18T02:29:25.123 に答える
6

C の関数は、他の戻り値の型が定義されていない場合、デフォルトで int を返します。return 0 は、呼び出し元が戻り値を見ている場合に備えて、ランダムな値ではなく、関数が既知の値を返すようにするための良い方法です。

于 2013-02-18T02:19:47.987 に答える
4

文字通り0のintを返しています。

于 2013-02-18T02:18:47.430 に答える