私はPHPにかなり精通していますが、Cに手を出し始めました。コードを見ました。
return 0;
値を返さない関数の最後。関数に戻り値がない場合、値NULLが自動的に返されるため、これはPHPでは使用されません。
私が求めているのは、簡単な英語で、return 0
実際にそうですか?関数呼び出しの値として引数を返すPHPのようなものですか?それはちょうど良い習慣ですか?
この質問は以前にも何度も聞かれたことがあることは知っていますが、PHP開発者の観点から質問しています。
関数呼び出しの値として引数を返すphpのようなものですか?それはちょうど良い練習ですか?
はい、PHPおよび他の多くの言語は 'C'からreturn
キーワードを借用しました。すべての言語で、return
キーワードには同じ機能があります-to return
キーワードに続くものは、呼び出し元に返される値です。
それは良い練習ですか?はい、いいえ。すべての関数shouldが値を返すわけではありません。標準ライブラリでもかなりの数が値を返しません。したがって、それらの戻り値の型はvoid
です。
ただし、main
関数は_0
_(_EXIT_SUCCESS
_)を返して、プログラムが正常に実行されたことを識別します。それ以外の場合は-1(_EXIT_FAILURE
_も)
編集:(@KeithThompsonに感謝):
_EXIT_FAILURE
_は実装定義です。 _1
_は_EXIT_FAILURE
_の一般的な値ですが、重要なことはあなたが知る必要がないということです。
歴史的な理由により、return 0;
は、次のようにvoid
として宣言された関数から戻ります。
void foo( /* arguments */ )
{
/* do things */
return 0;
}
これは何もせず、0
(またはそこに置くもの)は捨てられます。また、賢明なコンパイラは、これを行うと警告メッセージを表示します。だからこれをしないでください。
Cの関数は、他の戻り値の型が定義されていない場合、デフォルトでintを返します。呼び出し元が戻り値を見ている場合に、関数がランダムな値ではなく既知の値を返すようにするには、return 0を使用することをお勧めします。
文字通り0のintを返します。
Cプログラミング言語では、整数を返すか、マクロ_EXIT_SUCCESS
_および_EXIT_FAILURE
_を返すことにより、メイン関数を終了するか、メイン関数から戻るプログラムが成功または失敗を通知できます。 Unixでは、これらはそれぞれ0と1に等しくなります。 Cプログラムは、整数ステータスまたは終了マクロを最初のパラメーターとして指定するexit()
関数も使用できます。
マクロ_EXIT_SUCCESS
_および_EXIT_FAILURE
_は別として、C標準は戻りコードの意味を定義していません。戻りコードの使用規則は、プラットフォームによって異なります。
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
}