美文网首页
union的作用域

union的作用域

作者: 突击手平头哥 | 来源:发表于2021-02-04 01:26 被阅读0次

    union的作用域

    最近在学习的时候,发现union的作用域居然也有些特殊,在这里简单介绍

    匿名union作用域

    int main() {
        union {
            int a;
            bool b;
        };
    
        a = 1;
        printf("union -> a: %d\n", a);
    
        return 0;
    }
    
    
    union -> a: 1
    

      匿名作用域其属性是全局的,可以被直接访问得到;在这一点上有点类似于enum

    全局匿名union

    static union {
        int a;
        bool b;
    };
    
    int main() {
    
    
        a = 1;
        printf("union -> a: %d\n", a);
    
        return 0;
    }
    

      如果是全局的匿名联合体,则必须是static的;将作用于限制在本文件

    枚举类

    顺带介绍一下枚举类

    enum {
        a,
        b,
    };
    
    int main() {
        printf("union -> a: %d\n", a);
    
        return 0;
    }
    

      enum的命名空间和union是类似的

    枚举类

    enum class test_enum {
        a,
        b,
    };
    
    int main() {
        printf("union -> a: %d\n", test_enum::a);
    
        return 0;
    }
    

      可以限制一下作用域

    相关文章

      网友评论

          本文标题:union的作用域

          本文链接:https://www.haomeiwen.com/subject/cwuvtltx.html