郁闷郁闷!!!!找不到问题所在(已解决)

[复制链接]
2600|6
 楼主| 一朝成名 发表于 2007-10-11 11:39 | 显示全部楼层 |阅读模式
if(a&nbsp;&gt&nbsp;b)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;if(a-b&gt1)&nbsp;&nbsp;&nbsp;&nbsp;//只有把前面改做if(--a&nbsp;!=&nbsp;b)&nbsp;a++程序才能正常运行<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;......<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;}<br />if(a&ltb)<br />&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;if(b-a&gt1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//跟上面同样道理<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;......<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;}<br />最近做个东西写了个小程序但是就出现了费解的问题.只有把if(a-b&nbsp;&gt1)改为if(--a&nbsp;!=&nbsp;b)(后面有a的修正a++)<br />程序才能正常运行.....<br />如果想用if(&nbsp;a-b&nbsp;&gt&nbsp;2)更是不可能的事&nbsp;&nbsp;出现同样的错误现象<br />很是纳闷.....问题出那里了.......
computer00 发表于 2007-10-11 11:57 | 显示全部楼层

晕了...到底是怎么个错法,别人好测试啊

if(a&nbsp;&gt&nbsp;b)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;if(--a&nbsp;!=&nbsp;b)&nbsp;&nbsp;&nbsp;&nbsp;//我的测试结果是,无论是a-b&gt1还是--a!=b结果都是一样,没有区别。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;}<br />
 楼主| 一朝成名 发表于 2007-10-11 12:16 | 显示全部楼层

re:computer00

在我这的话如果用&nbsp;if&nbsp;(a-b&gt1)<br /><br />脱机运行那错的大了,整个程序运行下来就是错的<br /><br />只有用if(--!a=b)&nbsp;&nbsp;&nbsp;&nbsp;a++才行<br /><br />难道是KEIL错了?编译的事?这个函数那里都不会受到影响即使中断也不怕修改a<br /><br />的数值.<br /><br />如果想用a-b&gt2更是出错&nbsp;&nbsp;&nbsp;&nbsp;只能照上面的方法多&nbsp;--&nbsp;几次真是痛苦<br /><br /><br /><br />
 楼主| 一朝成名 发表于 2007-10-11 12:22 | 显示全部楼层

问题解决了......

把KEIL的优化关了&nbsp;&nbsp;一切正常了....<br /><br />跟那个大哥的问题相似...<br />
fantianqi 发表于 2007-10-11 19:26 | 显示全部楼层

好熟悉啊

楼主的程序和我刚用的一模一样啊&nbsp;&nbsp;&nbsp;哈哈<br />我是刚用12864做了一个简易示波器玩&nbsp;&nbsp;这个是用来增加竖线的吧
老狼 发表于 2007-10-11 21:26 | 显示全部楼层

避免这种问题的最好方法是

m&nbsp;=a-b;<br />if(m&gt1)<br />{<br /><br />}<br /><br />if&nbsp;的语句中,最好不要出现数**算,多写一句,能避免很多麻烦。<br />
 楼主| 一朝成名 发表于 2007-10-12 15:26 | 显示全部楼层

明白 谢谢各位

优化到8.9的话&nbsp;&nbsp;程序就出现莫名的错误<br /><br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

100

主题

3297

帖子

5

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