zoukankan      html  css  js  c++  java
  • 匿名命名空间(转)

    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声明是一样的.

    转自:https://www.cnblogs.com/youxin/p/4308364.html
  • 相关阅读:
    expandafter
    又回到了kde
    朗读软件
    tex bookmarks
    vim命令执行时间
    vim,tex的编译
    utorrent
    火狐的扩展
    linux 无线指示灯闪
    tex溢出报警
  • 原文地址:https://www.cnblogs.com/zl1991/p/11558461.html
Copyright © 2011-2022 走看看