为什么在C++的某些编译器中使用int main()时不必包含return语句?Turbo C++怎么样?
Ker*_* SB 42
在C++中,在C99和C11中,如果控制流到达main
函数的末尾,则该语言的特殊规则是函数impliclty返回0
.
bil*_*llz 26
在C++和C99/C11中,main函数中没有return语句,默认返回0 ;
§3.6.1主要功能
main中的return语句具有离开main函数(销毁具有自动存储持续时间的任何对象)并以返回值作为参数调用std :: exit的效果.如果控制到达main的末尾而没有遇到return语句,则效果是执行return 0;
还阅读了维基页面 C/C++的主要功能
如果程序员没有定义返回值,则隐式返回0; 在main()函数的末尾由编译器插入; C++标准需要此行为.
Yu *_*Hao 13
main
必须返回一个int
,一些编译器,包括Turbo C++,可能允许其他返回值,特别是void main
,但它是错误的,从不使用它.
但是在C++中,如果没有显式返回值main
,则与之相同return 0;
C++11§3.6.1主要功能部分5
main中的return语句具有离开main函数(销毁具有自动存储持续时间的任何对象)并以返回值作为参数调用std :: exit的效果.如果控制到达main的末尾而没有遇到return语句,则效果就是执行
Run Code Online (Sandbox Code Playgroud)return 0;
请注意,对于C,仅在C99及更高版本中支持此功能,但C89不支持此功能.