专栏名称: 嵌入式微处理器
关注这个时代最火的嵌入式微处理器,你想知道的都在这里。
今天看啥  ›  专栏  ›  嵌入式微处理器

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

嵌入式微处理器  · 公众号  ·  · 2024-09-09 12:00

文章预览

大家好,我是 鱼鹰。说起 匿名结构体,想必大家第一感觉就是看着好高大上的名字,但实际上也就那样。 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 = ………………………………

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