我可以初始化全局变量并定义类似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)
答案 0 :(得分:1)
我认为这取决于你的功能CHelper::GetSystemDPI();
如果此函数不引用任何其他全局变量或其他问题,则应该没问题。
C ++不保证不同编译单元的全局变量的初始化序列。
与docs
相关