文章预览
大家好,我是 鱼鹰。说起 匿名结构体,想必大家第一感觉就是看着好高大上的名字,但实际上也就那样。 typedef struct { union { struct { uint8_t bit_0:1 ;uint8_t bit_1:1 ;uint8_t bit_2:1 ; }; uint8_t value; }info1; union{ struct { uint8_t bit_0:1 ;uint8_t bit_1:1 ;uint8_t bit_2:1 ; }; uint8_t value; }info2; }info_t; 在这个例子中,下面这个就是所谓的匿名结构体,因为这个 struct 没有名字。 struct { uint8_t bit_0:1 ;uint8_t bit_1:1 ;uint8_t bit_2:1 ; }; 因此,在访问这个 bit_0 成员时,直接这样使用就行(这种位域一般在协议对接上用的比较多): void func() { info_t info; info.info1.bit_0 = 0; info.info1.bit_1 = 0; info.info1.bit_2 = 0; // or info.info1.value =
………………………………