在一工程中用到了结构体位段,因结构体初始化不能一次性初始化。故想到了共同体,共用体顾名思义,元素共用一个内存。元素的值为最后写入值,任意时刻只能保存一个值。
用法:
在main.h中,定义结构体和共用体
typedef struct DATE
{
uint8_t bit0:4;
uint8_t bit1:4;
uint8_t bit2:4;
uint8_t bit3:4;
};
union Flag
{
uint16_t all;
struct DATE bit;
};
extern union Flag flag;
extern struct DATE date;
在main.c声明并使用
union Flag flag;
struct DATE date;
flag.all = 0xFF;
flag.bit.bit0=1;//直接就这样使用了
flag.bit.bit1=5;