gpt4 book ai didi

C++ 全局函数

转载 作者:搜寻专家 更新时间:2023-10-30 23:49:46 31 4
gpt4 key购买 nike

我在 .cpp 文件 void functionA() 中声明了一个全局函数。我希望 functionA() 在启动前被调用一次(不在 main() 内)。我意识到,如果函数是 int functionB(),我可以使用 static int A = functionB() 调用它。但是对于void的返回值,我该怎么做呢?

谢谢

最佳答案

你把它放到一个全局对象的构造函数中:

void functionA();

namespace {
struct global_initializer {
global_initializer() {functionA();}
} the_global_initializer;
}

请注意,这具有全局初始化的共同缺点:虽然同一翻译单元中的全局变量按照其定义顺序进行初始化,但跨翻译单元的全局变量初始化顺序是未定义的。

此外,链接器可能会选择消除未引用的对象 (the_global_initializer),这将阻止调用 functionA()

关于C++ 全局函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3665308/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com