两个陈述有什么区别? 这里假设nValue是4个字节的整数。 我的信念是两者都是一样的。
答案 0 :(得分:2)
我会说他们都产生完全相同的结果。 BYTE和WORD都是无符号的(假设是标准的Windows定义)。因此,如果nValue是有符号或无符号的,它应该没有任何区别。在所有情况下,您应该得到nValue的最低8位。
答案 1 :(得分:2)
他们完全相同。
答案 2 :(得分:1)
如果您指的是Microsoft Win32的宏,则两者完全相同:
//from Windef.h
#define LOWORD(l) ((WORD)(((DWORD_PTR)(l)) & 0xffff))
#define LOBYTE(w) ((BYTE)(((DWORD_PTR)(w)) & 0xff))
然而,LOBYTE(nValue)
在语法上更好(或者也许在性能方面也是如此),因为它会立即为您提供结果。