gxx9203

提取数据的高位和低位

0
阅读(1819)

第一次发博客。再次记录一下自己的成长路程。

 

#define BYTE0(dwTemp)       (*(char *)(&dwTemp))
#define BYTE1(dwTemp)       (*((char *)(&dwTemp) + 1))
#define BYTE2(dwTemp)       (*((char *)(&dwTemp) + 2))
#define BYTE3(dwTemp)       (*((char *)(&dwTemp) + 3))

 

关键是#define BYTE0(dwTemp)       (*(char *)(&dwTemp))的意义:

先取dwTemp的地址,然后强制转换为单字节类型,然后从地址上取数,

所以你可以当这个数是8字节的,然后定义
#define BYTE4(dwTemp)       (*((char *)(&dwTemp)+4))
#define BYTE5(dwTemp)       (*((char *)(&dwTemp)+5))。