作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
根据微软HIWORD宏,从指定的32位值中检索高位字。
宏的原始定义是:
#define HIWORD(l) ((WORD)((((DWORD_PTR)(l)) >> 16) & 0xffff))
例如,如果传递的参数是unsigned long
值0x12345678,则返回结果为0x1234
重写宏如下:
#define MYHIWORD(l) ((WORD)(((DWORD_PTR)(l)) >> 16))
返回的结果是相同的值0x1234
我的问题:
当传递相同的参数时,为什么两个宏返回相同的结果?
第一个宏中 AND 操作(& 0xffff)的目的是什么?
最佳答案
What is purpose of AND operation (& 0xffff) in first macro ?
这不是必需的,因为强制转换会消除高位。我想它只是为了(向读者)强调一些位被删除的事实。
关于c - 通过C宏检索高位字的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17513127/
在 javascript 中是否有一种简单的方法来只转义特定范围的控制字符? 具体来说,我只想转义范围“\x00-\x1f”和“\x7f-\xff”(控制和高位字符)。在计算然后发送到 API 的散列
我是一名优秀的程序员,十分优秀!