美文网首页
C++的共用体使用场景

C++的共用体使用场景

作者: 何亮hook_8285 | 来源:发表于2022-10-17 23:42 被阅读0次

C++使用union

描述

union是C语言中一种声明共用体的数据类型,使用union声明的共用体只会占用共用体成员的最大长度类型的内存空间。

共用体使用场景

  1. 节省内存空间
  2. 位操作
  3. 字节操作

节省内存空间

struct video_info{
    int alg;
    int time;
};

struct audio_info{
    int sample_rate;
    int chnnel_cnt;
};

struct av_info{
    char name[4];
    int size;
    //共用体中使用结构体,解决内存占用问题
    union{
        struct video_info vinfo;
        struct audio_info ainfo;
    };
};

位操作

union Byte{
    char a;
    //结构体的位域
    struct{
        unsigned char b1:1;
        unsigned char b2:1;
        unsigned char b3:1;
        unsigned char b4:1;
        unsigned char b5:1;
        unsigned char b6:1;
        unsigned char b7:1;
        unsigned char b8:1;
    }Bit;
};

int main() {
    Byte byte1;
    byte1.a=190;
    printf("%d %d %d %d %d %d %d %d",byte1.Bit.b8,byte1.Bit.b7,byte1.Bit.b6,byte1.Bit.b5,byte1.Bit.b4,byte1.Bit.b3,byte1.Bit.b2,byte1.Bit.b1);
    return 0;
}

字节操作

union IntToByte{
    unsigned int a;
    unsigned char byte[4];
};

int main() {

    IntToByte ito;
    ito.a=1200;
    for(int i=0;i<4;i++)
    {
        printf("%d ",ito.byte[i]);
    }
    return 0;
}

相关文章

  • C++的共用体使用场景

    C++使用union 描述 union是C语言中一种声明共用体的数据类型,使用union声明的共用体只会占用共用体...

  • NDK开发—结构体、共用体与C++基础(三)

    目录 结构体、共用体与C++基础11、结构体字节对齐2、共用体3、C++ 输出函数符号兼容引用字符串C字符串字符串...

  • 整型数据如何在内存中存放

    /* 共用体: 同一段存储单元存放不同类型的变量。共用体中所有成员所使用的开头地址的值都是一样的。 ①共用体变量的...

  • C语言基础 之 共用体类型

    共用体类型 共用体类型的说明和变量定义 共用体类型又称“联合类型”,简称共用体。共用体类型的说明和变量的定义方式与...

  • 面经---依依短租

    1. 结构体、共用体、类 C++中结构体与类的区别: 结构体中的成员访问权限不声明时候默认是 public 的,而...

  • C语言共用体

    共用体 共用体的格式:union 共用体名称{数据类型 属性名称;数据类型 属性名称;... ...}共用体定义的...

  • 共用体和枚举类型

    共用体 共用体就是多个不同类型的数据共用一个内存空间 定义 初始化 使用 运行结果 因为输入的是设置的是97 而...

  • 结构体、共用体与C++基础

    结构体、共用体与C++基础1 [TOC] 1、结构体 结构体是C编程中一种用户自定义的数据类型,类似于Java的J...

  • C语言学习之十——共用体、枚举类型和typedef

    共用体1.1共用体的概念 :使几个不同的变量共占同一段内存的结构,称为“共用体”类型的结构。1.2 定义共用体类型...

  • 9.结构体与共用体

    1.共用体 共用体的概念 : 使几个不同的变量共占同一段内存的结构称为 “共用体”类型的结构。 定义共用体类型变量...

网友评论

      本文标题:C++的共用体使用场景

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