据我所知,有两种方法可以声明一个仅在一个文件中可见的常量变量:
static const int VARIABLE = 1
namespace { const int VARIABLE = 1; }
那有什么区别?
答案 0 :(得分:3)
由于它是const
,因此两者都有内部联系,并没有区别。因此,让我们考虑更有趣的案例,它不是const
。
在那种情况下,实际上,差别很小。
从技术上讲,第一个会有内部链接,因此无法从另一个翻译单元访问该名称;第二个将具有外部链接,但无法从另一个翻译单元访问,因为其周围的名称空间无法命名。