据我所知,有两种方法可以声明一个只在一个文件中可见的常量变量:
- 声明
static const int VARIABLE = 1
- 在未命名的命名空间中声明它:
namespace { const int VARIABLE = 1; }
那么有什么区别呢?
最佳答案
既然是const
,那么两者都有内联,没有区别。因此,让我们考虑更有趣的情况,它不是 const
。
在那种情况下,实际上没有什么区别。
从技术上讲,第一个将具有内部链接,因此无法从另一个翻译单元访问该名称;第二个将具有外部链接,但不能从另一个翻译单元访问,因为它周围的 namespace 无法命名。
关于c++ - 声明一个静态常量和一个常量到未命名的命名空间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23631778/