打印

怎么会有这个warning

[复制链接]
4379|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
王培1|  楼主 | 2008-10-29 21:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
johnwjl| | 2008-10-29 22:47 | 只看该作者

cw编译严谨体现.

加类型强制转换.

使用特权

评论回复
板凳
王培1|  楼主 | 2008-10-31 21:25 | 只看该作者

不是类型的问题

原来是这样写的
ReadData[SensorNum - 1 -i] = (LCode[MCode] + 0x0b)>>4;
要写成这样
ReadData[SensorNum - 1 -i] = LCode[MCode] + 0x0b;
ReadData[SensorNum - 1 -i] >>= 4;

使用特权

评论回复
地板
johnwjl| | 2008-11-4 20:26 | 只看该作者

试试看。

ReadData[n] 是否为unsigned char 类型?如下:

ReadData[SensorNum - 1 -i] = (unsigned char)((LCode[MCode] + 0x0b)>>4)

使用特权

评论回复
5
王培1|  楼主 | 2008-11-5 19:34 | 只看该作者

也是可以的

原来我在IAR编译器下面的写法为ReadData[SensorNum - 1 -i] = (LCode[MCode] + 0x0b)>>4;,目的上一把ReadData[SensorNum - 1 -i]加0x0b后右移4次,把高4位变0,在IAR下面编译没有问题,在CW下面会有上面的"warning",那么又2中写法
1:ReadData[SensorNum - 1 -i] = LCode[MCode] + 0x0b;
ReadData[SensorNum - 1 -i] >>= 4;

2:ReadData[SensorNum - 1 -i] = (unsigned char)((LCode[MCode] + 0x0b)>>4)

使用特权

评论回复
6
王培1|  楼主 | 2008-11-5 19:52 | 只看该作者

感谢4楼的朋友提醒

使用特权

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

本版积分规则

37

主题

142

帖子

0

粉丝