如:
#define
SHORT signed short
BYTE *pucSectionData
typedef union
{
SHORT sWord16;
struct
{
unsigned char ucByte0; /* LSB */
unsigned char ucByte1; /* MSB */
} byte;
} SHORT2BYTE;
SHORT2BYTE
stTempData16;
int
uNetworkID = 0;
操作:
stTempData16.byte.ucByte1 = pucSectionData[3];
stTempData16.byte.ucByte0 = pucSectionData[4];
uNetworkID = stTempData16.sWord16;
这样我们就得到了我们想要得结果
但是如果反过来操作的话,则要注意:
如: stTempData16.sWord16= uNetworkID;
则: stTempData16.byte.ucByte1拿到的则是高位的数据
stTempData16.byte.ucByte0 拿到的则是低位的数据
这是在应用结构体和联合体时要特别注意的。同时也要注意:在使用结构体和联合体的时候尽量不要出现数据结构不一致的问题,特别是一些数据结构的转换时不可以出现数值转换异常!