dox3net Asked:2020-12-31 19:42:48 +0000 UTC2020-12-31 19:42:48 +0000 UTC 2020-12-31 19:42:48 +0000 UTC LOWORD 宏有什么作用? 772 我正在慢慢进入 WinAPI 编程,有些宏让我有点困惑。其中有一个宏LOWORD(I)。你能解释一下下面一行发生了什么吗?) #define LOWORD(l) ((WORD)(((DWORD_PTR)(l)) & 0xffff)) c++ 2 个回答 Voted zed 2020-12-31T20:22:20Z2020-12-31T20:22:20Z 就像它的名字所说的那样 - 返回 2 个低字节。 例如: DWORD l = 0x11223344; WORD w = LOWORD(l); // w = 0x3344 Best Answer ANGRY SHARK 2020-12-31T20:32:02Z2020-12-31T20:32:02Z 您初始化 LOWORD 宏,也就是说,如果您在 main 函数中有LOWORD(L),那么您将显示一个由这个“公式”计算的数字:((WORD)(((DWORD_PTR)(L)) & 0xffff))。 这个公式有什么作用? 1) 返回 L 的前两个低字节:((DWORD_PTR)(l)) & 0xffff) 2) 明确地将其全部转换为 WORD 类型:((WORD)(((DWORD_PTR)(L)) & 0xffff)) 这是文档的链接:MSDN
就像它的名字所说的那样 - 返回 2 个低字节。
例如:
您初始化 LOWORD 宏,也就是说,如果您在 main 函数中有
LOWORD(L)
,那么您将显示一个由这个“公式”计算的数字:((WORD)(((DWORD_PTR)(L)) & 0xffff))
。这个公式有什么作用?
1) 返回 L 的前两个低字节:
((DWORD_PTR)(l)) & 0xffff)
2) 明确地将其全部转换为 WORD 类型:
((WORD)(((DWORD_PTR)(L)) & 0xffff))
这是文档的链接:MSDN