我试图确保程序首先调用函数以确保关键对象的初始化。但是,我对如何使用/调用 init_seg
感到困惑。
例如,从 msdn 的文档来看,似乎首先调用的是以下内容。
#pragma init_seg( ".CRT$XCC" )
static void InitializeStuff()
{
printf("InitializeStuff\n");
}
但是,情况似乎并非如此,因为该函数显然不会被自动调用(当然,除非我明确调用它)。
我如何使用 init_set 来确保函数在我的其他执行代码的其余部分之前被调用?
最佳答案
如果我没有理解错的话,你可以将所有你想要初始化的全局变量放在与 #pragma init_seg
例子:
#pragma init_seg( ".CRT$XCB" )
class A
{
A()
{
printf("first!\n");
}
};
static A first;
并确保除了要首先初始化的全局变量外,不要在该文件中放置任何其他全局变量。
关于c++ - 使用 init_seg 调用初始化函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10205800/