C语言-位域
定义语法
struct
{
类型 变量 : 长度
};
元素 | 描述 |
---|---|
类型 | 只能为 int(整型),unsigned int(无符号整型),signed int(有符号整型) 三种类型,决定了如何解释位域的值。 |
变量 | 位域的名称。 |
长度 | 位域中位的数量。宽度必须小于或等于指定类型的位宽度。 |
C位域应用场景
常用于指定内存大小,比如 那些bool类型的数据,对于这些类型,它只要一个长度就可以了!
C位域示例
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Test
{
unsigned a : 1;
unsigned b : 2;
};
int main()
{
struct Test test;
test.a = 1;
test.b = 10;
printf("a = %d, b = %d \n", test.a, test.b);
return 0;
}
运行结果为
a = 1, b = 2
注意 %d 表示整形, unsigned 表示二进制, 2 的二进制为10!