原创 位段

2011-1-28 16:42 2721 12 12 分类: 消费电子

C语言中对内存存取信息一般以字节为单位。实际上,有时一个信息用不了那么多位,因此C语言中允许在一个结构体中以位为单位来指定其成员所占内存长度,这种以位为单位的成员称为“位段”或“位域”。利用位段能够用较少的位数存储数据。

   Struct  packed_data

   {

unsigned  a:2;

unsigned  b:6;

unsigned  c:4;

unsigned  d:4;

int  I;

 }  data;

其中a/b/c/d各占2位,6位,4位,4位。

对位段中引用方法data.a=8;

使用位段时的说明:

1、位段成员的类型必须指定为unsigned或int类型。

2、一个位段必须存储在同一个存储单元中,不能跨越两个单元,如果第一个单元空间不能容下一个位段,则该空间不用,而从下一个单元起存放该段。

3、可以定义无名位段。该空间不用。

4、位段的长度不能大于存储单元的长度,也不能定义位段数组。

5、位段可以用整型格式符输出。

6、位段可以在数值表达式中引用,它会被系统自动的转换成整数。

文章评论0条评论)

登录后参与讨论
我要评论
0
12
关闭 站长推荐上一条 /2 下一条