这个问题出于好奇。在为测试程序编写主程序时,我什么也main
没有返回(在中没有return
语句main
)。但是我声明main为int main()
。并且编译成功。
好像还有其他任何用int
返回类型编写的函数实际上却未返回int
,我将收到错误消息
“功能名称”必须返回值
那么,为什么编译器不会在main
功能上有所抱怨呢?
通常,不允许控制流在不返回任何内容的情况下到达非void函数的末尾。该main
功能的处理方式与标准中规定的不同。
从http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2960.pdf:
§3.6.1 / 5
如果控制在没有遇到return语句的情况下到达了main的末尾,则其结果是执行return 0的结果;
至于理由,我不确定,说实话。如果有人知道,请将其添加到我的答案中或作为评论。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句