QT 结构体字节对界问题

QT默认是4字节对界,所以程序中使用sizeof()时会出现问题,看采用如下方法:

/字节对齐,否则共用体那里指针处理时有问题
#pragma pack(push)  //保存对齐
#pragma pack(1) //设定为1字节对齐
typedef struct{
    uint16_t    VoltPos;    	//+总电压(3位整数,1位小数)(采样)
    uint16_t    VoltNeg;    	//-总电压

    int16_t     DisAndChgCurrPos;
    int16_t     DisAndChgCurrNeg;

    union  BAT_SYS_STA	BattCheckSta;
    union  BAT_SYS_STA	BattAlarmSta;
    uint32_t    BattPackCommErrChk;
    uint32_t    BattPackCommErrAlm;

}BMS_SYS_DAT;
#pragma pack(pop)   //恢复对齐状态

posted on 2022-12-28 16:47  xihong  阅读(281)  评论(0)    收藏  举报

导航