专栏名称: 21ic电子网
即时传播最新电子科技信息,汇聚业界精英精彩视点。
今天看啥  ›  专栏  ›  21ic电子网

为什么不建议用匿名结构体?

21ic电子网  · 公众号  · 半导体  · 2024-09-09 18:34
    

文章预览

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

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览