C语言共用体-union的用法
程序员文章站
2022-03-05 15:39:06
...
定义格式
union 共用体名{
成员列表
};
共用体特点:
1)占用的内存等于最长的成员占用的内存
2)共用体使用了内存覆盖技术,同一时刻只能保存一个成员的值,如果对新的成员赋值,就会把原来成员的值覆盖掉。会影响其余所有成员。
实例说明
typedef union
{
uint8_t All;
struct
{
uint8_t stopCutter :1;
uint8_t updateStation :1;
uint8_t meetBump :1;
uint8_t updateGohome :1;
uint8_t meetEdge :1;
uint8_t refreshEdge :1;
uint8_t refreshMulty :1;
uint8_t refreshSingle :1;
}Bit;
}FlagTypeDef;
FlagTypeDef用于存储一些标志位,其中,ALL与结构体Bit占用同一段内存,Bit中的成员通过位域限制,使得ALL和Bit的占用的内存均为8位。
修改Bit的值,可以影响ALL的值,ALL的值也可以表示Bit的值。