打印

类型转换问题

[复制链接]
1297|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sioca|  楼主 | 2012-1-13 17:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
john_lee| | 2012-1-13 17:56 | 只看该作者
#define LD_WORD(ptr)     (*(WORD*)(ptr))

使用特权

评论回复
板凳
john_lee| | 2012-1-13 18:12 | 只看该作者
楼主给出的宏:
#define    LD_WORD(ptr)        (WORD)(*(WORD*)(BYTE*)(ptr))
里面有两个多余的地方:
1、(BYTE*)
ptr 先强制为 BYTE* 后,没有任何访问操作,就又强制为了 WORD*,那么这个没有意义的 BYTE* 强制,会被编译器忽略掉的。
2、(WORD)
当 ptr 强制为 WORD* 后,使用这个“指针”访问的数据(读和写),都会被编译器按照数据转换规则自动转换为 WORD,无法转换的数据就会报错,所以,再加一个 (WORD) 就是多余了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

122

主题

419

帖子

1

粉丝