main 的返回值
您可能已经注意到main
的返回类型是 int
,但本章及之前章节中的大多数示例实际上都没有从 main
返回任何值。好了,这里有一个诀窍:如果
main
的执行正常结束而没有遇到 return
语句,编译器会假定函数以隐式 return 语句结束。
|
|
请注意,出于历史原因,这仅适用于函数
main
。所有其他具有返回类型的函数都应以正确的 return
语句结束,该语句包含一个返回值,即使该返回值从未使用过。当
main
返回零(隐式或显式)时,环境将其解释为程序成功结束。main
可以返回其他值,并且某些环境以某种方式允许调用者访问该值,尽管这种行为不是必需的,也并非在不同平台之间可移植。main
的值保证在所有平台上以相同方式解释为:值 | 描述 |
---|---|
0 | 程序成功执行 |
EXIT_SUCCESS | 程序成功执行(与上面相同)。 此值在头文件 <cstdlib> 中定义。 |
EXIT_FAILURE | 程序失败。 此值在头文件 <cstdlib> 中定义。 |
由于
main
的隐式 return 0;
语句是一个棘手的例外,一些作者认为显式编写该语句是一种好习惯。