int main()函数是否必须在所有编译器中返回一个值?
这个问题在这里已经有了答案:
在C ++中,在C99和C11中,如果控制流到达main
函数的末尾,则语言的特殊规则是,函数impliclty返回0
。
在C ++和C99 / C11中,在main函数中没有返回语句,它默认返回0 ;
§3.6.1主要功能
main中的return语句具有离开main函数(销毁具有自动存储持续时间的任何对象)并以返回值作为参数调用std :: exit的效果。 如果控制到达main的结尾而没有遇到return语句,则效果是执行return 0;
还阅读wiki页面的C / C ++主要功能
如果程序员未定义返回值,则返回0; main()函数的末尾由编译器插入; 此行为是C ++标准所要求的。
main
必须返回一个int
,包括Turbo C ++在内的一些编译器可能允许其他返回值,特别是void main
,但它是错误的,从不使用它。
但是在C ++中,如果你没有明确地返回一个main
的值,它就和return 0;
C ++ 11§3.6.1主要功能部分5
main中的return语句具有离开main函数(销毁具有自动存储持续时间的任何对象)并以返回值作为参数调用std :: exit的效果。 如果控制到达主的结尾而没有遇到return语句,则效果是执行
return 0;
请注意,对于C,这仅在C99及更高版本中受支持,但不受C89支持。
链接地址: http://www.djcxy.com/p/28731.html上一篇: Must the int main() function return a value in all compilers?