1

我试图确保程序首先调用一个函数,以确保关键对象的初始化。但是,我对如何init_seg被使用/调用感到困惑。

例如,从 msdn 上的文档看来,以下内容似乎是第一个被调用的。

#pragma init_seg( ".CRT$XCC" )

static void InitializeStuff()
{
    printf("InitializeStuff\n");
}

但是,情况似乎并非如此,因为该函数显然不会被自动调用(当然,除非我明确调用它)。

如何使用 init_set 确保在我的其他执行代码的其余部分之前调用函数?

4

1 回答 1

1

如果我理解正确,您将首先要初始化的所有全局变量放在与#pragma init_seg

例子:

#pragma init_seg( ".CRT$XCB" )

class A
{
    A()
    {
        printf("first!\n");
    }
};

static A first;

并确保您没有在该文件中放置任何其他全局变量,而不是您要首先初始化的全局变量。

于 2012-04-18T09:07:21.883 回答