目录
C 位域
如果程序的结构中包含多个开关量,只有 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;
}
位域的使用
位域变量名.位域名
位域变量名->位域名