【发布时间】:2010-12-23 19:37:43
【问题描述】:
有人能解释一下什么时候应该在头文件中定义的全局变量或常量之前使用 static 关键字吗?
例如,假设我有一个带有以下行的头文件:
const float kGameSpriteWidth = 12.0f;
这是否应该在const 前面有static?使用static 有哪些最佳实践?
【问题讨论】:
-
请注意,在 C++ 中,
static对于所有全局命名空间const限定的变量都是隐含的(即默认为static),尽管我建议将其限定为static无论如何这个意图很明确。 -
另见How do I use
externto share variables between source files? 那里的答案解释了如何共享值——其中一个关键部分是使用标题来声明(但不定义)共享的变量.如果您没有将声明放入的标题,则变量定义应该是静态的。如果您确实有它的标头,请在定义变量的位置(仅是一个源文件)和使用它的位置(可能是许多源文件)都包含标头。