c – exit(0)vs return 0

c – exit(0)vs return 0,第1张

概述When exit(0) is used to exit from program, destructors for locally scoped non-static objects are not called. But destructors are called if return 0 is used.Note that static objects will be cleaned up

When exit(0) is used to exit from program,destructors for locally
scoped non-static objects are not called. But destructors are
called if return 0 is used.Note that static objects will be
cleaned up even if we call exit().

这个逻辑背后应该有一些理由.我只是想知道是什么?谢谢.

解决方法 在exit(0)的情况下,你正在调用一个函数.您
不要指望调用局部变量的析构函数
你正在调用一个函数.而编译器不知道,
一个先验,有什么特别的退出(0).

其实这个理由真的只适用于C之前例外.该标准可以重新定义exit()来抛出实现使用参数定义异常,并指定对main的调用被包裹在一个try块中这个异常,并将返回码传回系统.这意味着退出有一个完全不同的然而,C和C语义;无论如何,没有提出委员会提出的这一改变.

总结

以上是内存溢出为你收集整理的c – exit(0)vs return 0全部内容,希望文章能够帮你解决c – exit(0)vs return 0所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1253360.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)

    保存