如何解决main() 中的 return 语句与 exit()
其实 还是 有区别的,但是很微妙。它对 C++ 有更多的影响,但差异很重要。
当我调用return
时main()
,将为我的本地范围对象调用析构函数。如果我调用exit()
,
再读一遍。exit()
。这意味着,一旦我称它为,就“没有后盾”。您在该函数中创建的任何对象都不会被销毁。通常这没有任何影响,但有时确实如此,例如关闭文件(您肯定希望所有数据都刷新到磁盘吗?)。
请注意,static
即使您调用exit()
.
最后请注意,如果您使用abort()
,则不会销毁任何对象。也就是说,不会调用全局对象、静态对象和局部对象的析构函数。
http://groups.google.com/group/gnu.gcc.help/msg/8348c50030cfd15a
解决方法
我应该使用exit()
还是只使用return
语句main()
?就我个人而言,我喜欢这些return
陈述,因为我觉得它就像阅读任何其他函数一样,并且当我阅读代码时流程控制很流畅(在我看来)。即使我想重构main()
函数,拥有return
似乎比exit()
.
做一些没有exit()
做的特别的事情return
吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。