山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省
共用体
共用体的核心就是
一种数据可能有多种类型
就比如 如果要用一个变量存放钱,钱有很多种类型,可以是10,或者10.5,或者10万,有int型和double型,还有字符型,这个时候就可以用到共用体
他的格式和结构体很像
定义的格式是:

绿色的是这个共用体的名字,可以自定义
使用的格式是:

而且定义共用体的时候,前面也可以加typedef关键字,可以给这个共用体起别名,后面使用的时候就可以直接用别名来定义了
共用体的特点
共用体,也叫联合体,共同体
所有的变量都使用同一个内存空间
所占的内存大小=最大成员的长度(也受内存对齐影响)
(细节:
以最大的单个成员的长度为准
总大小一定是最大成员的整倍数)
每次只能给一个变量进行赋值,因为第二次赋值时会覆盖原有的数据
共用体和结构体的区别
结构体:一种事物包含多个属性
共用体:一个属性有多种类型
上面是代码层面的区别
内存里面的区别:
存储方式:
结构体:各存各的
共用体:存一起,多次存会覆盖
内存占用:
结构体:各个变量的总和(受内存对齐影响)
共用体:最大类型(受内存对齐影响)