TI中文支持网
TI专业的中文技术问题搜集分享网站

在CCS环境中,如何读取位结构体中的bit位的偏移量和bit数?

typedef struct

{
Uint16 bSW1:1;//对应拨码开关SW1
Uint16 bSW2:1;//对应拨码开关SW2
Uint16 bSW3:1;//对应拨码开关SW3
Uint16 bSW4:1;//对应拨码开关SW4
Uint16 bvsd:12;
}HardwardInputs;
//输入信号应用层
typedef struct
{
Uint16 bDir:1;//方向选择位,对应拨码开关SW1
Uint16 bCurrent:3;//电流档选择位,对应拨码开关SW2、sw3,sw4
Uint16 bvsd:12;
}AppInputs;

unionUNINPUTS
{
HardwardInputsbit1;
AppInputsbit2;
Uint16all;
};

UNINPUTS MyInputs;

请问是否有办法找出结构体AppInputs类型定义的每个bit位的大小和偏移?比如bCurrent这一位的bit数为(3个)、偏移值为(1)?

其实就是相当于sizeof函数和取地址操作,请问有对应的办法吗?
rookiecalf:

这个貌似真没办法,结构体中的位域操作在汇编级不是简单的取址。

这么做的目的是什么呢?

赞(0)
未经允许不得转载:TI中文支持网 » 在CCS环境中,如何读取位结构体中的bit位的偏移量和bit数?
分享到: 更多 (0)