今天看代码看到如下一段,不明白结构体成员后面:11,:5的意思,经过百度后,才晓得这是结构体的位域操作方法。
typedef union {
int word;
struct {
int scan_period :11;
int doze_times :5;
int reserved31_16 :16;
} bit;
} SCAN_CTRL1_UN;
下列一行代码表示scan_period这个成员变量在32bit中占据11bit.
int scan_period :11;