C中返回与返回0之间的任何差异

时间:2013-10-16 11:33:14

标签: c

我听到有人说main的返回类型严格为int

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

相反,我只是尝试return

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

它不会引发任何警告或错误。我想知道它会返回0或一些未定义的值,如JavaScript吗?

我正在阅读这个问题return false the same as return?,其中returnreturn false在JavaScript中都有所不同。它在C中是一样的吗?

2 个答案:

答案 0 :(得分:7)

C标准明确规定为约束:

  

带有表达式的return语句不应出现在函数中   其返回类型为void。没有表达式的return语句   只应出现在返回类型为void的函数中。

main也不例外。所以标准不允许这样做。

与其他函数相比,标准作为main的例外允许的是,控件可能会在最后退出main而没有明确的return语句。但这两件事情并不相同。

答案 1 :(得分:0)

(注意:此答案不正确。请参阅Jens'answer。)

C标准指定,main()函数中的为空返回,或从末尾掉落,与{{1}相同}。对于所有其他功能,它不会起作用。