初始化全局const变量是否安全,定义?

时间:2017-02-23 01:29:56

标签: c++

我可以初始化全局变量并定义类似C ++中的以下代码吗? 如果没有,你能解释详细原因吗?

我负责许多旧代码,有很多代码片段都是这样编写的。我该如何安全地重建它们?

// initialize the global variable with the result from a function call
const double g_dbScale = CHelper::GetSystemDPI();

#define DEFAULT_WIDTH       (500 * g_dbScale)
#define DEFAULT_HEIGHT      (200 * g_dbScale)

1 个答案:

答案 0 :(得分:1)

我认为这取决于你的功能CHelper::GetSystemDPI(); 如果此函数不引用任何其他全局变量或其他问题,则应该没问题。

C ++不保证不同编译单元的全局变量的初始化序列。

docs

相关