创建静态对象的顺序

时间:2017-08-10 07:17:29

标签: c++

我有一些代码如下:

的main.cpp

/* create a global object to help manage malloc */
struct MemoryHelper {
    void * (*malloc_fn)( size_t );
    bool initialized;
} MemHelper = { malloc, true };

int main() { /* some stuff */ }

我很惊讶在dynamic initialization期间MemHelper.initialized的值为true,但MemHelper.malloc_fn的值为NULL

这似乎表明该对象是在staticdynamic初始化的混合下创建的。

这是一个合规模式 - 保证完全初始化或未初始化的对象吗?

有没有办法保证完全初始化?

0 个答案:

没有答案