C++匿名命名空间
2016-04-14 20:14
357 查看
今天得到来自google的老大的指点,学习了一个新的用法:匿名命名空间。
C++另外有一种匿名的命名空间,来保证生成的符号是局部的,这样对于匿名空间中的变量等,外部都是不可见的. //test3.cpp static void bar(){} namespace //匿名的命名空间 { float bar2; int foo; } //test4.cpp extern int foo; extern void bar(); extern float bar2; int main() { bar(); //外部的bar()被声明为static,这里链接不到符号.不能访问 bar2 = 0.1f; //外部的匿名空间哩,这里也不能访问. foo = 0xFF; return 0; };//如果将test4的目标和test3的目标进行链接,实际上是找不到这些符号的.链接会失败. 匿名的命名空间是C++的特性,相对于C的static声明来说,可以在匿名的空间里面声明很多变量和函数,这样可以省去了对每个变量和函数添加static声明. 实质上匿名空间的功能跟static声明是一样的.
相关文章推荐
- C++ 入门
- Kmeans聚类c++实现
- 求两个已排序单链表中相同的数据(C语言)
- 求链表相交时的交点(C语言)
- 判断两个链表是否相交,若相交,求交点。(假设链表可能带环)【升级版】(C语言)
- 判断两个链表是否相交,若相交,求交点。(假设链表不带环)(C语言)
- 判断单链表是否带环?若带环,求环的长度?求环的入口点?(C语言)
- 查找单链表的倒数第k个节点,要求只能遍历一次链表(C语言)
- c++第3次作业
- 查找单链表的中间节点,要求只能遍历一次链表(C语言)
- 合并两个有序链表,合并后依然有序(C语言)
- C++中operator的主要用法
- 单链表排序(冒泡排序)(C语言)
- leetcode21题 题解 翻译 C语言版 Python版
- c++ json封装---解析
- c++第二次作业
- ActiveX(MFC)控件——添加接口及WEB调用
- C++ string类的实现
- int、long、long long取值范围
- C++创建文件夹