C++中的return, exit 与 abort 的区别

来源:互联网 发布:福州大学网络vpn 编辑:程序博客网 时间:2024/05/12 10:43

exit():

在调用时,会做大部分清理工作,但是决不会销毁局部对象,因为没有stack unwinding。 会进行的清理工作包括:销毁所有static和

global对象,清空所有缓冲区,关闭所有I/O通道。终止前会调用经由atexit()登录的函数,atexit如果抛出异常,则调用terminate()。 、

abort():

调用时,不进行任何清理工作。直接终止程序。

retrun:

调用时,进行stack unwinding,调用局部对象析构函数,清理局部对象。如果在main中,则之后再交由系统调用exit()。

0 0
原创粉丝点击