一、位域描述

    存放一个开关量或者其他开关状态时,用一位二进位即可。为了减少嵌入式内存资源的开销,可以使用位域进行定义,位域是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。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐