经过几天的努力 ,终于把数组 赋值给结构体,
#pragma pack(push) //保存原对齐并设置新的字节对齐
#pragma pack(1)
typedef struct __TNetTopologyRecord
{
BYTE TotalPackNum; //总包数
BYTE CurrentPackNum; //当前包号
BYTE ExtID; //预留字节,暂时为零[LongID->5]
WORD MarkID; //标识ID,固定为0xbebe[LongID->7-6]
}NetTopologyRecord,*PNetTopologyRecord;
#pragma pack(pop) //恢复原字节对齐方式
BYTE byll[8] = {65,66,67,68,69,70,71,72};
PNetTopologyRecord pNet;
pNet = (PNetTopologyRecord)(byll+2);
这样就避免了不同字节间赋值,关健是 #pragma pack(1)和pragma pack(pop) 这两句,把内存字节对齐,这样不会因为结构体中有BYTE和WORD字节,没法直接赋值了