方便**。每次都写((U8 *)(&u16))[0]麻烦,也难记

[复制链接]
3061|9
 楼主| hsw_21 发表于 2007-9-10 08:05 | 显示全部楼层 |阅读模式
typedef unsigned char    U8;


#define MSG_TYPE(u16)                        ((U8 *)(&u16))[0]
#define MSG_VALUE(u16)                        ((U8 *)(&u16))[1]
computer00 发表于 2007-9-10 08:42 | 显示全部楼层

方便**。每次都写((U8 *)(&u16))[0]麻烦,也难记

ayb_ice 发表于 2007-9-10 09:28 | 显示全部楼层

好处自己去体验一下...

qjy_dali 发表于 2007-9-10 09:57 | 显示全部楼层

有些在实践中能加深印象

以前我是很多地方不理解,多编程后就发现了,有很多方法可以提高效率,这里也算是,呵呵
 楼主| hsw_21 发表于 2007-9-10 11:23 | 显示全部楼层

再问

((U8 *)(&u16))[0]
((U8 *)(&u16))[1]
是什么意思啊?谢谢!
新好男孩 发表于 2007-9-10 11:37 | 显示全部楼层

好像是MS3里面的.

((U8 *)(&u16))[0]取高8位
((U8 *)(&u16))[1]取低8位
wjy1107 发表于 2007-9-10 13:11 | 显示全部楼层
wjy1107 发表于 2007-9-10 13:14 | 显示全部楼层

这么写是为了把一个定义为16位的数拆成两个8位的数。

eraychen 发表于 2007-9-10 19:10 | 显示全部楼层

re:

((U8 *)(&u16))[0]取高8位
((U8 *)(&u16))[1]取低8位 
----------------
要看是大端还是小端,决定是高低八位
computer00 发表于 2007-9-10 20:06 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

417

主题

2675

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部