一句话解释位域:指定结构体内变量的的位宽,从而节省空间
例子:
#include <stdio.h>
struct _test
{
int bit1:3; // 第一个字节0 ~ 2位
int :0; // 空域:表示第一个字节 3~7都为0
int bit2:1; // 第二个字节第0位
int :3; // 第二个字节1~3位保留不可使用
}test,*ptest;
int main(void) {
ptest = &test; //结构体指针
ptest->bit1 = 1; //bit1 取值范围为:0~7 因为只有三个位
printf("bit1=%d\n",ptest->bit1);
printf("test占用%d字节",sizeof(test));
return 0;
}
运行结果:
bit1=1 test
占用8字节
位域是C语言中一种特殊的结构体成员,允许指定变量在内存中占用的位数。例如,文中定义了一个结构体`struct_test`,其中`bit1`占用3位,`bit2`占用1位,其余位设置为0或保留。这样可以更高效地利用内存空间。程序示例展示了如何对位域赋值及打印结构体占用的字节数,结果显示`test`占用8字节。
1410

被折叠的 条评论
为什么被折叠?



