读书人

MAKEWORD为什么对每个参数强转3次,该如

发布时间: 2012-04-01 17:23:46 作者: rapoo

MAKEWORD为什么对每个参数强转3次
#define MAKEWORD(a, b) ((WORD)(((BYTE)((DWORD_PTR)(a) & 0xff)) | ((WORD)((BYTE)((DWORD_PTR)(b) & 0xff))) << 8))
一个word就2个字节,为啥要转成DWORD_PTR,请教下。
依葫芦画瓢弄了个8字节
#define MAKELONGLONG(a, b) ((DWORD64)(((DWORD)((DWORD64)(a) & 0xffffffff)) | ((DWORD64)((DWORD)((DWORD64)(b) & 0xffffffff))) << 32)),是这样吧


[解决办法]
为了防止符号位扩展

读书人网 >C++

热点推荐