打印

keil的c51编译器奇怪!

[复制链接]
1737|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hartcomm|  楼主 | 2009-3-5 11:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
angle += (20/90)*(7*ang_rate[0]+32*ang_rate[1]+12*ang_rate[2]+32*ang_rate[3]+7*ang_rate[4]);  //句1

angle = angle + (20/90)*(7*ang_rate[0]+32*ang_rate[1]+12*ang_rate[2]+32*ang_rate[3]+7*ang_rate[4]);   //句2

angle +=1; //句3

分别有三句,我已经把优化级别降为最低。居然不编译句1,而句3,句2编译。难道欺长怕段? 加上 volatile 后 句1才被编译。

奇怪!

相关帖子

沙发
computer00| | 2009-3-5 12:04 | 只看该作者

这么长?看着晕...或许被合成一句了。

使用特权

评论回复
板凳
mohanwei| | 2009-3-5 12:56 | 只看该作者

那是编译器聪明……

直接合并了

使用特权

评论回复
地板
yanfengzhu| | 2009-3-5 13:18 | 只看该作者

20/90 = 0, 整个运算结果为0,编译器当然不会那么傻了.

使用特权

评论回复
5
xwj| | 2009-3-5 13:40 | 只看该作者

确实是编译器聪明……

人太傻

使用特权

评论回复
6
ayb_ice| | 2009-3-5 21:25 | 只看该作者

又发现有人怀疑KEIL了

使用特权

评论回复
7
汽车电子| | 2009-3-5 22:28 | 只看该作者

是编译器聪明

  不调用的函数也不编译的。

  LZ的情况,第一句是废的,白忙活,编译它干嘛? 

  如果再加一句angle = xxx,则前面三句都不编译。

使用特权

评论回复
8
Airwill| | 2009-3-6 00:29 | 只看该作者

LZ 比编译器聪明嘛

使用特权

评论回复
9
hartcomm|  楼主 | 2009-3-6 20:57 | 只看该作者

惭愧

把90放到最后除 或者强制转换类型 似乎可以

还有一些计算 在vc中的计算与c51中完全不同,看了下汇编 似乎keil太聪明 


至于 xwj ,跟我又仇?!  在21ic上常常被激起一种暴力的冲动,冷不住有疯狗咬人。
上次见xwj咬过一次人,这次居然扑我而来? 小心小心

在21ic上 奇怪! 居然越老越疯狂!

使用特权

评论回复
10
huangqi412| | 2009-3-6 21:07 | 只看该作者

看...

使用特权

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

本版积分规则

22

主题

684

帖子

3

粉丝