美文网首页
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和位域

    举例 union:union {int a;char b;short c;}un;位域:struct bitDom...

  • C语言位运算

    C语言位运算_C语言中文网 C语言位域(位段)_C语言中文网

  • C语言----位域

    为什么使用位域 如果程序的结构中包含多个开关量,只有 TRUE/FALSE 变量,如下: 这种结构需要 8 字节的...

  • 初学C语言

    初学C语言——联合和枚举 #include #include union qubie{ int score; ...

  • C语言位域问题

    C语言位域问题 有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时...

  • 《C语言22—位域》

    2019年3月25日星期一 多云 (声明:理论知识部分来自菜鸟教程网站!)今日学习内容: 26、C位域 如果程序的...

  • 黑色C语言 - 位域

    一、概念 位域是指信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,...

  • C++ Union高级剖析

    简介 C++的Union继承自C语言的Union,所以意义是一样的。但是由于C++ ADT机制,所以就需要C++的...

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

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

  • C语言位域详解和实例分析

    前言 在探究OC底层源码的时候,涉及到了联合体和位域相关知识。比如objc_objct里面的isa_t就是一个联合...

网友评论

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

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