结构体定义的时候可以对位进行第一,每几位表示什么意思,初始化时并且可以单独的对某些位进行赋值具体方法如下
//.h文件
typedef struct tagMMBOXPKT {
unsigned char RemoteWorkState:3; //遥控模式
unsigned char JumpGear:2; //跳档
unsigned char SelectGear:3; //选定档位
unsigned char ManualAutoMaticSW:2; //手动自动切换
unsigned char BrakeLightCtrl:2; //制动灯控制
unsigned char LeftLightCtrl:2; //左转向灯
unsigned char RightLightCtrl:2; //右转向灯
unsigned char CBU_control:2; //整车功能控制时置1,如空调、灯光时
unsigned char __bytepadding1:6; //留空
unsigned char rev[3]; //填充0xff
unsigned char WirelessSintensity; //wifi信号强度
unsigned char RemoteAccelerator; //油门
}MMboxPkt, *MMboxPtr;
MMboxPkt gCanMMboxPtk;
#define MBOX_MMBOX_DEFAULT() \
do { \
memset(&gCanMMboxPtk, 0, 8); \
memset(gCanMMboxPtk.rev, 0xFF, 3); \
gCanMMboxPtk.SelectGear = 1; \
gCanMMboxPtk.WirelessSintensity = 0xFF; \
}while(0)
// .c文件
main()
{
MBOX_MMBOX_DEFAULT();
}