读书人

关于MAKEWORD()函数解决办法

发布时间: 2013-01-08 14:02:13 作者: rapoo

关于MAKEWORD()函数
MSDN上是这样的
WORD MAKEWORD(
BYTE bLow,
BYTE bHigh
);
我定义了三个变量
BYTE Low = 1;
BYTE Hign = 0;
WORD CaseNum = 0;
分别是指定低8位和高8位,
用MAKEWORD函数的话按照我的理解应该是CaseNum = MAKEWORD(Low,High);
值不是应该是0000,0000,0000,0001么,为什么得到的结果是12337?

[解决办法]
没有问题,就是1啊
不知道你那里用的有问题

顺便这个是个宏,并非函数
#define MAKEWORD(a, b) ((WORD)(((BYTE)((DWORD_PTR)(a) & 0xff))
[解决办法]
((WORD)((BYTE)((DWORD_PTR)(b) & 0xff))) << 8))

[解决办法]
应该是没错的,保险起见,这样写:


CaseNum = MAKEWORD((Low), (High));

读书人网 >C++

热点推荐