2010-07-31 52 views
1

可能重复编译:
What should main() return in C/C++?计划与不回0

这是一个非常基本的问题,我猜。

我一直在编程一年,但我的一个朋友让我感到惊讶,一个相当令人毛骨悚然的问题。

在C++上以'int main()'开头的程序即使使用'return 0;'也可以完美编译。删除并且不会被任何其他返回语句取代。如果没有返回语句,程序仍会显示'进程返回0'。

这有什么解释吗? 对不起,如果我的问题很傻!

+0

可能重复的/问题/ 204476 /什么,应该 - 主 - 回报 - 在-CC) – polygenelubricants 2010-07-31 21:26:43

回答

1

What should main() return in C/C++?

另外值得一提的是,在C++中,诠释的main()可以没有返回值留下接受的答案,此时默认为返回0。这也是真实的有C99程序。是否应该省略返回0是否可以辩论。

5

§3.6.1/ 5:

main return语句具有离开主函数(破坏用自动存储持续时间的任何对象),并调用exit与返回值作为效果论据。如果控制到达的主要结束,而不会遇到return语句,其效果是,执行[又该C/C++?主()的返回(http://stackoverflow.com的 return 0;