Ale*_*tov 36
如果你写
static const int x
Run Code Online (Sandbox Code Playgroud)
在.h文件中,然后#include -s这个.h的每个翻译单元都有自己的私有变量x
.
如果您希望每个人都能看到1个全局变量,那么您应该编写
extern const int x;
Run Code Online (Sandbox Code Playgroud)
在.h文件中
const int x = ...;
Run Code Online (Sandbox Code Playgroud)
在其中一个.cpp文件中.
如果你想让一个静态const int只对一个翻译单元可见 - 根本不要在.h文件中提及它.
如果我在.h文件中使用static int x并且每隔一个文件包含该.h文件,它们是否都属于同一个翻译单元?
如果将某些东西声明为静态(不在类中,对于类static关键字具有不同的语义),则不能在其TU之外看到该静态变量.因此将它放在头文件中将导致包含该头的每个TU具有该静态变量的不同私有副本.
并且const变量的范围仅限于TU,即使它被限制在文件中的for循环中?
没有.即使对于静态const值,范围也由它的声明决定.所以范围将受到括号的限制.