【发布时间】:2018-12-21 14:11:49
【问题描述】:
诚然,这是一个非常愚蠢的问题,但我前几天也在考虑这个问题。有时在源代码中我会看到这样定义的寄存器:
union
{
uint8_t byte;
struct
{
uint8_t bit1 :1;
uint8_t bit2 :1;
uint8_t bit3_4 :2;
uint8_t rsvd :4;
} bitfield;
} SomeReg_t;
其他时候我只看到一个标准结构:
struct
{
uint8_t bit1 :1;
uint8_t bit2 :1;
uint8_t bit3_4 :2;
uint8_t rsvd :4;
} SomeReg_t;
我写了一个简单的例子来说明我的意思:
https://onlinegdb.com/r1H3Xuqe4
问题是,关于位域,这两个定义有什么区别。您何时将一个与另一个用于位域。
【问题讨论】: