例:
typedef union {
uint16_t X;
struct{
uint16_t A :1;
uint16_t B :1;
uint16_t C :14;
} Bits;
} Y;
使用typedef后,Y相当于结构体类型名,可以直接用Y 声明结构体变量。如Y y;
uint16_t A :1; 这种定义方式表示A占1位的长度,跟前面的uint16_t没多大关系。同理:B占1位长度,C占14位长度。
小端结构下,A为最低位,依次往上为B、C。
如写入y.BITS.A=1,则对应的为0000 0000 0000 0001;再写入