- 匿名命名空间是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++匿名命名空间
最新推荐文章于 2025-10-22 16:17:18 发布
本文深入探讨了C++中的匿名命名空间特性,解释了其如何替代static声明,以及在代码中实现局部作用域和避免命名冲突的方式。通过具体代码示例,说明了匿名命名空间在编译器内部的实现机制。
688

被折叠的 条评论
为什么被折叠?



