奇怪的if else

[复制链接]
2336|3
 楼主| huangqi412 发表于 2008-6-28 17:20 | 显示全部楼层 |阅读模式
uchar get_char,cmd;
~~~~
~~~~ 
//软件仿真这里手动修改成get-char=cmd=0;
  while (1)
    {
      if (get_char==temp)//取得串口接受数据 但必须有更新      
      cmd=0xff;
      else
      cmd=get_char;

     PORTA=cmd;//debug查看
/*
~~~~~~~~~~~      全部先注释掉
*/
    }
如果get-char没有改变则将cmd赋0xff,如果改变了则变成get-char值
软件仿真中进while前两者都手动变0,相等了, 但是进while后,
先执行if,然后再执行if,然后再执行else ,再执行下面的.奇怪了.  把下面语句全部注释也一样.
dld2 发表于 2008-6-28 18:59 | 显示全部楼层

建议看看反汇编

 楼主| huangqi412 发表于 2008-6-28 19:02 | 显示全部楼层

看了反汇编,很奇怪.改优化等级也没用.

wingcc.           只好用旁门左道搞定了.
taoest 发表于 2008-6-28 23:45 | 显示全部楼层

贴准确程序,不要修改。

直接贴上来。不要将程序和问题混在一起。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

622

主题

24960

帖子

18

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