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:
这个貌似真没办法,结构体中的位域操作在汇编级不是简单的取址。
这么做的目的是什么呢?