美文网首页
C语言union和位域

C语言union和位域

作者: init123 | 来源:发表于2021-04-15 11:53 被阅读0次

    举例

    union:
    union {
    int a;
    char b;
    short c;
    }un;
    位域:
    struct bitDomain{
    int a:10;
    char b:2;
    int c:22;
    }

    内存占用

    union:占用字节数最大的数据类型为union的字节宽度,如上un的占用4字节。
    位域:在内存对齐的基础上,各成员的宽度之和,如上bitDomain占用8字节。

    位域其他

    struct bitDomain{
    int a:10;
    int b;
    int c:22;
    }
    如上成员b没有标明位数,说明占用原始类型的宽度,此位域占用12字节。
    位域赋值超出的时候会被截断。

    详细介绍

    http://c.biancheng.net/cpp/html/2932.html
    http://c.biancheng.net/view/2037.html

    相关文章

      网友评论

          本文标题:C语言union和位域

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