位域

来源:互联网 发布:挂载linux是什么 编辑:程序博客网 时间:2024/06/05 23:07

位域

    标准C提供了一种基于结构体的数据结构--位域(BitField),位域就是把一个存储单元中的二进制划分为几个不同的区域。并说明每个区域的位数。每一个域有一个域名,允许在程序中按域名进行操作,这样仅仅是操作和管理一个状态位, 位域的定义格式如下:
struct 位域结构名{ 位域列表 };
位域列表格式为:
struct value{
   unsigned int a:1   //依次从低位到高位排列;
   unsigned int :2    //位域可以无域名,但不能被引用,只用来填充或调整位置;
   unsigned int b:3
   unsigned int :0   //空域,目的是将目前剩余部分归为一个域,填充0。
}value;

位域的引用:
    value.a=1; //置value的bit 0位为1
    value.b=7; //置value的bit 2位为1
    通过位域定义位变量,是实现单个位位操作的重要途径和方法,采用位域定义位变量,产生的代码紧凑、高效。这种位域应用于单片机开发比较普遍。