我想知道可以确定在销毁全局对象和atexitC++ 之间的顺序
我有一个全局对象和注册atexit函数如下:
static MyClass g_class;
void onExit()
{
// do some destruction
}
int main()
{
atexit(onExit);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我发现onExit()之前MyClass::~MyClass()在Visual Studio 2012和gcc4.7.2中调用过.我确定onExit在全局对象(如g_class)销毁之前总是会调用它吗?
我想知道全局对象寄存器顺序和atexit寄存器顺序使用相同的顺序表.或者全局对象顺序和atexit顺序之间没有关系?
编辑:对不起,我写错了.整理示例代码时我很困惑.onExit()在~MyClass()之前调用.