c – exit(0)vs return 0

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&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...