如果程序的结构中包含多个开关量,只有 TRUE/FALSE 变量
struct { unsigned int widthValidated; unsigned int heightValidated; } status;
上述结构需要 8 字节的内存空间,但在实际上,在每个变量中,我们只存储 0 或 1。
在结构内使用上述变量,可以定义变量的宽度告诉编译器,使用哪些字节。
如:
struct { unsigned int widthValidated : 1; unsigned int heightValidated : 1; } status;
struct 位域结构名 { 变量类型(int,unsigned int,signed int) 位域的名称:位域中位的数量; };
一个位域存储在同一个字节中,如一个字节所剩空间不够存放另一位域时,则会从下一单元起存放该位域。也可以有意使某位域从下一单元开始。
struct bs { unsigned a:4; unsigned :4; unsigned b:4; unsigned c:4; }
位域的使用
位域变量名.位域名
位域变量名->位域名