关于匿名命名空间 与 const修饰的全局变量在作用域方面的问题
// a.cpp int foo = 111;
// b.cpp extern int foo; cout << foo << endl;
- 如上,foo 输出 111
// a.cpp const int foo = 111;
// b.cpp extern const int foo; cout << foo << endl;
- 如上,编译错误,因为 const 修饰的变量默认非外部变量
- 所以,const 修饰的变量有没有必要通过使用 static 修饰的方法或匿名命名空间约束的方法,限制其不暴露给其他编译单元呢?