C语言想结构体中以位为单位来指定其成员所占内存的长度。
如:
struct data{
unsigned a:2;
unsigned b:4;
unsigned c:16;
int i;
};
如果各个位段之和没有沾满一个字节,则存储单元其余位置为空。
对位段数据的引用方法:
data.a=2;
如果data.a=4;则报错。
1.位段成员的类型必须为unsigned或者int。
2.若某一位段要从另一个字开始存放,可以如下定义:
unsigned a:1;
unsigned b:2;
unsigned :0;
unsigned c:3;///从另外一个存储单元开始存放。
3.一个位段必须同时存储在同一存储单元中,不能跨两个单元。
4.可以定义无名字段。如:
unsigned a:1;
unsigned b:2;
unsigned :6;
unsigned c:3;
5.位段可以使用%d,%u,%x,%o输出。