嵌入式C开发中用到的位域结构体

一、位域描述

    存放一个开关量或者其他开关状态时,用一位二进位即可。为了减少嵌入式内存资源的开销,可以使用位域进行定义,位域是C语言支持的一种数据结构,称为“位域”或“位段”。“位域”是把一个字节中的每个位划分为几个不同的区域,并指明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。

二、定义

定义一个结构体源代码如下:

typedef struct

{

    uint32_t ID;

    struct sAttr

    {

        uint8_t SChl:4;   //终端发送数据的频点,

        uint8_t RMsg:4;   //要读取的报文的序号,从0开始表示第一条报文

    }Attr;用冒号:来指明占用的位数,本例中结构体Attr定义为位域结构体,总共占用1字节 SChl=4bit RMsg=4bit

}PollMeterInfoType;

PollMeterInfoType s_tMeterInfo;

三、调用

直接采用结构体调用方式即可,例如s_tMeterInfo.Attr.SChl。


版权声明:本文为u010058695原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。