- 匿名命名空间是c++的特性,相对于c的static声明来说,可以在匿名的空间里面声明很多变量和函数,这样可以省去对每个变量和函数添加static声明。实质上匿名空间的功能跟static声明是一样。
- 当定义一个匿名命名空间时,编译器在内部会为这个命名空间生成一个唯一的名字,而且还会为这个匿名的命名空间生成一条using指令.
namespce { char c; int i; double d; } 编译器在内部会为这个命名空间生成一个唯一的名字,而且还会为这个匿名的命名空间生成一条using指令。所以上面的代码在效果上等同于: namespace __UNIQUE_NAME_ { char c; int i; double d; } using namespace __UNIQUE_NAME_;
- 注意:命名空间都是具有external 连接属性的,只是匿名的命名空间产生的__UNIQUE_NAME__在别的文件中无法得到,这个唯一的名字是不可见的
- C++ 新的标准中提倡使用匿名命名空间,而不推荐使用static,因为static用在不同的地方,涵义不同,容易造成混淆.另外,static不能修饰class。
c++匿名命名空间
猜你喜欢
转载自blog.csdn.net/YRC333/article/details/98945997
今日推荐
周排行