0

の戻り値の型mainは厳密にint

 int main(){
     printf("hello world");
     return 0; // returning 0 to main indicates successful execution
 }

代わりに、単純に試してみreturnました。

 int main(){
     printf("hello world");
     return; // 
 }

警告やエラーは発生しません。0JavaScriptのように未定義の値を返すのだろうか?

私はこの質問を読んでいましたreturn false と同じ return? つまりreturnreturn falseどちらも JavaScript では異なります。Cでも同じですか?

4

2 に答える 2

7

C 標準では、制約として明示的に次のように述べられています。

戻り値の型が void である関数には、式を含む return ステートメントを使用してはなりません。式のない return ステートメントは、戻り値の型が void である関数でのみ使用できます。

それmainも例外ではありません。したがって、これは標準では許可されていません。

他の関数との比較の例外として標準で許可されているのは、明示的なステートメントがなくmainても制御が最後に脱落する可能性があることです。しかし、これら 2 つのことは同じではありません。mainreturn

于 2013-10-16T11:54:29.960 に答える