我想知道在C++中,全局对象的销毁和atexit之间可以确定顺序我有一个全局对象并注册atexit函数,如下所示:staticMyClassg_class;voidonExit(){//dosomedestruction}intmain(){atexit(onExit);return0;}我发现onExit()在VisualStudio2012和gcc4.7.2中的MyClass::~MyClass()之前被调用。我确定总是在全局对象(如g_class)销毁之前调用onExit吗?我想知道全局对象寄存器顺序和atexit寄存器顺序使用相同的顺序表。还是全局对象顺序和atexit顺序没有
我想知道Python脚本是否正确终止。为此,我使用atexit但问题是我不知道如何区分atexit是用sys.exit(0)还是非零或异常调用的。推理:如果程序正常结束,它什么也不做,但如果程序以异常结束或返回不同于零的错误代码(退出状态)我想触发一些Action。如果您想知道我为什么不使用try/finally是因为我想为导入公共(public)模块的十几个脚本添加相同的行为。我不想修改所有这些,而是想将atexit()hack添加到正在导入的模块中,并在所有这些模块中免费获得此行为。 最佳答案 您可以使用sys.except
在使用avr-gcc编译时,我遇到了如下链接器错误:undefinedreferenceto`__cxa_pure_virtual'我找到了thisdocument其中指出:The__cxa_pure_virtualfunctionisanerrorhandlerthatisinvokedwhenapurevirtualfunctioniscalled.IfyouarewritingaC++applicationthathaspurevirtualfunctionsyoumustsupplyyourown__cxa_pure_virtualerrorhandlerfunction.Fo