为了账号安全,请及时绑定邮箱和手机立即绑定

main()中的return语句vs exit()

main()中的return语句vs exit()

C++ C
慕姐4208626 2019-08-14 17:22:56
main()中的return语句vs exit()我应该使用exit()还是只是return声明main()?我个人赞成这些return陈述,因为我觉得这就像在阅读代码时读取任何其他功能和流量控制一样顺畅(在我看来)。即使我想重构main()函数,return看起来似乎是一个更好的选择exit()。做一些exit()不特别的事return吗?
查看完整描述

3 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞

另一个区别 exit是:标准库函数,因此您需要包含标题并与标准库链接。为了说明(在C ++中),这是一个有效的程序:

int main() { return 0; }

但要使用exit你需要一个包括:

#include <stdlib.h>int main() { exit(EXIT_SUCCESS); }

另外,这增加了一个额外的假设:调用exit来自main返回零具有相同的副作用。正如其他人所指出的,这取决于你正在构建什么样的可执行文件(即谁在调用main)。您在编写使用C运行时的应用程序吗?Maya插件?一个Windows服务?一个司机?每个案例都需要研究,看看是否exit相当于return。恕我直言,exit当你真正意味着 return只是使代码更混乱。OTOH,如果你真的 有意思,那么一定exit要用它。


查看完整回答
反对 回复 2019-08-14
?
墨色风雨

TA贡献1853条经验 获得超6个赞

至少有一个理由需要exit:如果您的任何atexit处理程序引用自动存储持续时间数据main,或者您使用setvbufsetbuf分配给其中一个标准流,则自动存储持续时间缓冲区main,然后从main产生返回未定义的行为,但调用exit有效。

另一个潜在的用法(通常保留给玩具程序)是从具有递归调用的程序退出main


查看完整回答
反对 回复 2019-08-14
  • 3 回答
  • 0 关注
  • 687 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信