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
要用它。
墨色风雨
TA贡献1853条经验 获得超6个赞
至少有一个理由需要exit
:如果您的任何atexit
处理程序引用自动存储持续时间数据main
,或者您使用setvbuf
或setbuf
分配给其中一个标准流,则自动存储持续时间缓冲区main
,然后从main
产生返回未定义的行为,但调用exit
有效。
另一个潜在的用法(通常保留给玩具程序)是从具有递归调用的程序退出main
。
- 3 回答
- 0 关注
- 731 浏览
添加回答
举报
0/150
提交
取消