gpt4 book ai didi

c++ - 条件运算符是在全局范围内初始化全局变量的唯一方法吗?

转载 作者:太空狗 更新时间:2023-10-29 21:14:55 25 4
gpt4 key购买 nike

好的,我有一个充满全局变量的头文件。这是一个实现方式示例(在 .cpp 文件中):

extern double event::m_chance = 0.01;

到目前为止没有什么特别的。但是当我的代码变得更加复杂时,我开始实现一个 #define MASTER_MODE 用于测试目的。所以现在它看起来像这样:

extern double event::m_chance = MASTER_MODE ? 0.5 : 0.01;

然后我问自己:这是在全局范围内(有条件)初始化全局变量的唯一方法吗?因为 if 语句在这里不起作用......它一定是,对吧?

//declarations
extern double event::m_chance;

if (MASTER_MODE) { //Error: excepted a declaration
event::m_chance = 0.5;
//other variables should be here
}
else { //nope
event::m_chance = 0.01;
//other variables should be here
}

我只是问自己,这是不是其他人在我的位置上所做的。或者是否有一种更好(标准-定义的)方式来初始化它们……(比如创建一个额外的函数等)。

感谢您的帮助/建议!

最佳答案

#ifdef MASTER_MODE

extern double event::m_chance = 0.5;
//other variables should be here

#else

extern double event::m_chance = 0.01;
//other variables should be here

#endif

关于c++ - 条件运算符是在全局范围内初始化全局变量的唯一方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39331554/

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