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

nik*_*iko 0 c

我听过有人说回归类型main是严格的int

 int main(){
     printf("hello world");
     return 0; // returning 0 to main indicates successful execution
 }
Run Code Online (Sandbox Code Playgroud)

相反,我试着简单return.

 int main(){
     printf("hello world");
     return; // 
 }
Run Code Online (Sandbox Code Playgroud)

它不会引发任何警告或错误.我想知道它是返回0还是像JavaScript一样未定义的值?

我正在读这个问题,返回假回报一样吗?这说明return并且return false两者在JavaScript中都不同.在C中它是一样的吗?

Jen*_*edt 7

C标准明确规定为约束:

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

并且main也不例外.所以标准不允许这样做.

main与其他函数相比,标准作为例外允许的是控件可能main在没有明确return声明的情况下最终退出.但这两件事情并不相同.