c 语言结构中的位字段
我们可以自定义数据类型----"结构体",如果结构体中的变量不需要占用很大的空间的话,我们可以使用bit, 1个bit只有两个值,1或者0. 4个bit的字段也只能放下0-16之间的数.
代码如下:
#include <stdio.h>
struct Bit {
unsigned int a: 1; // 0 - 1
unsigned int b: 2; // 0 - 3
unsigned int c: 3; // 0 - 7
unsigned int d: 4; // 0 - 15
} B;
int main(int argc, char *argv[])
{
struct Bit b = { 1, 3, 5, 7 };
printf("b.a = %d, b.b = %d, b.c = %d, b.d = %d.\n", b.a, b.b, b.c, b.d);
return 0;
}
运行结果如下:
b.a = 1, b.b = 3, b.c = 5, b.d = 7
[环境: mac os x 10.8 g++ 4.2.1]