web-dev-qa-db-ja.com

それでは、「return 0」は実際にはどういう意味ですか?

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

return 0;

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

私が求めているのは、簡単な英語で、return 0実際にそうですか?関数呼び出しの値として引数を返すPHPのようなものですか?それはちょうど良い習慣ですか?

この質問は以前にも何度も聞かれたことがあることは知っていますが、PHP開発者の観点から質問しています。

14
Starkers

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

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

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

ただし、main関数は_0_(_EXIT_SUCCESS_)を返して、プログラムが正常に実行されたことを識別します。それ以外の場合は-1(_EXIT_FAILURE_も)

編集:(@KeithThompsonに感謝):

_EXIT_FAILURE_は実装定義です。 _1_は_EXIT_FAILURE_の一般的な値ですが、重要なことはあなたが知る必要がないということです。

16
Aniket Inge

歴史的な理由により、return 0;は、次のようにvoidとして宣言された関数から戻ります。

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

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

8
Brooks Moses

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

6
John

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

5
rocky

Cプログラミング言語では、整数を返すか、マクロ_EXIT_SUCCESS_および_EXIT_FAILURE_を返すことにより、メイン関数を終了するか、メイン関数から戻るプログラムが成功または失敗を通知できます。 Unixでは、これらはそれぞれ0と1に等しくなります。 Cプログラムは、整数ステータスまたは終了マクロを最初のパラメーターとして指定するexit()関数も使用できます。

マクロ_EXIT_SUCCESS_および_EXIT_FAILURE_は別として、C標準は戻りコードの意味を定義していません。戻りコードの使用規則は、プラットフォームによって異なります。

1

Cでは、開始時にvoidで関数を宣言する場合にのみ値を返す必要はありません。最初の例:

#include <stdio.h>
 int main()
{
   printf("Hello World!");
    return 0; // you have to use return because main starting with int
}

2番目の例:

#include <stdio.h>
void main()
{
printf("Hello World!");
//in this case return is useless, main is a void function

}
0
enjoytech