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

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

我应该使用exit()还是只是return声明main()?我个人赞成这些return陈述,因为我觉得这就像在阅读代码时读取任何其他功能和流量控制一样顺畅(在我看来)。即使我想重构main()函数,return看起来似乎是一个更好的选择exit()

做一些exit()不特别的事return吗?


慕姐4208626
浏览 691回答 3
3回答

茅侃侃

另一个区别&nbsp;exit是:标准库函数,因此您需要包含标题并与标准库链接。为了说明(在C ++中),这是一个有效的程序:int&nbsp;main()&nbsp;{&nbsp;return&nbsp;0;&nbsp;}但要使用exit你需要一个包括:#include&nbsp;<stdlib.h>int&nbsp;main()&nbsp;{&nbsp;exit(EXIT_SUCCESS);&nbsp;}另外,这增加了一个额外的假设:调用exit来自main返回零具有相同的副作用。正如其他人所指出的,这取决于你正在构建什么样的可执行文件(即谁在调用main)。您在编写使用C运行时的应用程序吗?Maya插件?一个Windows服务?一个司机?每个案例都需要研究,看看是否exit相当于return。恕我直言,exit当你真正意味着&nbsp;return只是使代码更混乱。OTOH,如果你真的&nbsp;有意思,那么一定exit要用它。

墨色风雨

至少有一个理由需要exit:如果您的任何atexit处理程序引用自动存储持续时间数据main,或者您使用setvbuf或setbuf分配给其中一个标准流,则自动存储持续时间缓冲区main,然后从main产生返回未定义的行为,但调用exit有效。另一个潜在的用法(通常保留给玩具程序)是从具有递归调用的程序退出main。
打开App,查看更多内容
随时随地看视频慕课网APP