文章预览
匿名结构体,看着好高大上的名字,但实际上也就那样。 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 = 0 ; }
………………………………