static 关键字将全局变量的范围限制为该翻译单元。
如果我使用static int x
在 .h 文件中并包含该 .h 文件每隔一个文件,它们不会都属于同一个翻译单元吗?
那么,x不是到处可见吗?
那么现在static有什么作用呢?
另外,有没有什么用static const int x
,其中 x 是全局变量?
默认情况下,所有 const 全局变量不是都是静态的吗?
即使 const 变量被限制在文件中的 for 循环中,它的作用域是否也仅限于 TU?
如果你写
static const int x
in an .h然后将每个翻译单元归档#include-s this .h将有自己的私有变量x
.
如果你想让 1 个全局变量对每个人都可见,你应该这样写
extern const int x;
in the .h文件和
const int x = ...;
在其中之一.cpp files.
如果你想让一个 static const int 仅对一个翻译单元可见 - 不要在.h根本没有文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)