打印

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

[复制链接]
1595|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一朝成名|  楼主 | 2007-10-11 11:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
if(a > b)
  {
   if(a-b>1)    //只有把前面改做if(--a != b) a++程序才能正常运行
     {                  
      ......
     }
   }
if(a<b)
  {                 
   if(b-a>1)           //跟上面同样道理
     {
      ......
      }
   }
最近做个东西写了个小程序但是就出现了费解的问题.只有把if(a-b >1)改为if(--a != b)(后面有a的修正a++)
程序才能正常运行.....
如果想用if( a-b > 2)更是不可能的事  出现同样的错误现象
很是纳闷.....问题出那里了.......

相关帖子

沙发
computer00| | 2007-10-11 11:57 | 只看该作者

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

if(a > b)
  {
   if(--a != b)    //我的测试结果是,无论是a-b>1还是--a!=b结果都是一样,没有区别。
     {                  
      a++;
     }
   }

使用特权

评论回复
板凳
一朝成名|  楼主 | 2007-10-11 12:16 | 只看该作者

re:computer00

在我这的话如果用 if (a-b>1)

脱机运行那错的大了,整个程序运行下来就是错的

只有用if(--!a=b)    a++才行

难道是KEIL错了?编译的事?这个函数那里都不会受到影响即使中断也不怕修改a

的数值.

如果想用a-b>2更是出错    只能照上面的方法多 -- 几次真是痛苦



使用特权

评论回复
地板
一朝成名|  楼主 | 2007-10-11 12:22 | 只看该作者

问题解决了......

把KEIL的优化关了  一切正常了....

跟那个大哥的问题相似...

使用特权

评论回复
5
fantianqi| | 2007-10-11 19:26 | 只看该作者

好熟悉啊

楼主的程序和我刚用的一模一样啊   哈哈
我是刚用12864做了一个简易示波器玩  这个是用来增加竖线的吧

使用特权

评论回复
6
老狼| | 2007-10-11 21:26 | 只看该作者

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

m =a-b;
if(m>1)
{

}

if 的语句中,最好不要出现数**算,多写一句,能避免很多麻烦。

使用特权

评论回复
7
一朝成名|  楼主 | 2007-10-12 15:26 | 只看该作者

明白 谢谢各位

优化到8.9的话  程序就出现莫名的错误

使用特权

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

本版积分规则

100

主题

3299

帖子

5

粉丝