11

在 C++ 中,3.6.1 主函数

(3.6.1/5) main 中的 return 语句具有离开 main 函数(销毁任何具有自动存储持续时间的对象)并以返回值作为参数调用 exit 的效果。如果控制到达main的末尾没有遇到return语句,效果就是执行return 0;

我可以在 C99 中执行以下操作而不返回 0 吗?

int main() { }
4

2 回答 2

15

是的,从 C99 开始,如果返回类型与 .兼容,则到达}main 末尾的 0 返回 0 。mainint

5.1.2.2.3 程序终止

如果main函数的返回类型是与int兼容的类型,那么从函数的初始调用返回main就相当于以exit函数返回的值main作为参数调用函数;11)到达}终止main函数返回值0。如果返回类型与 不兼容int,则返回到宿主环境的终止状态未指定。

于 2012-11-24T20:31:04.040 回答
8

是的,C99 标准说(§5.1.2.2.3):

到达}终止main函数的返回值 0。

于 2012-11-24T20:32:12.380 回答