[PIC®/AVR®/dsPIC®产品] 今天看程序看到这么一句代码,有点凌乱 ,这是什么意思

[复制链接]
2009|12
 楼主| on_my_work 发表于 2014-10-22 17:10 | 显示全部楼层 |阅读模式
本帖最后由 on_my_work 于 2014-10-22 17:22 编辑

ulong Tmp;
((uchar*)&Tmp)[3]= AlarmType;

这个是字节数组,已解决。
lanmp 发表于 2014-10-23 13:39 | 显示全部楼层
这程序写得奇怪,难道直接写成数组开销大么
Light_David 发表于 2014-10-25 00:25 | 显示全部楼层
直接写成数组以后,那么Tmp不就不好用了,如果它还要参与ulong类型的运算肿么办,对不对
949155525 发表于 2014-10-25 08:40 来自手机 | 显示全部楼层
解决了大小端以及高地位切换问题,但最完美的是用共用体结构。
 楼主| on_my_work 发表于 2014-12-2 15:23 | 显示全部楼层
这个是数据传输时用的,还有几个量整合在一起发送
shuidi_wangdan 发表于 2014-12-5 16:27 | 显示全部楼层
可否详细解释一下它的原理?
 楼主| on_my_work 发表于 2014-12-9 17:30 | 显示全部楼层
shuidi_wangdan 发表于 2014-12-5 16:27
可否详细解释一下它的原理?

长整形有四个字节  AlarmType是字符型数据。 因此,在这里Tmp可以作为一个包含四个字符的数组。
ak64 发表于 2014-12-9 21:57 | 显示全部楼层
ulong Tmp;
((uchar*)&Tmp)[3]= AlarmType;
//
uchar Tmp[200];
内存地址,一个UNSIGNED CHAR 类型的数组指针,对他赋值alarmType
相当于  TMP[3]=AlarmType
liu0000feng 发表于 2015-4-23 17:04 | 显示全部楼层
不懂啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

10

帖子

0

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