miaohaiyun2004 发表于 2011-5-10 08:43:59

关于C51内部程序执行方式

           while(!hedaowei&&a)
                   {
                  delay(500);
                  kagouchu=1;
                  delay(500);
                        kagouhui=0;
                        break;
                   }
           while(hedaowei&&a)
             {
                   delay(50000);
                   a=1;
                   while(a)
                     {
                           delay(50);
                   baojing=0;
                           delay(50);
                           baojing=1;
                     }
                  }

2个WHILE语句在执行的时候,2条while语句的条件是取反的,当先执行1调试时候,突然另外的一条语句变为真值,执行的语句为假时候,程序该怎么执行,是继续执行原来的语句?还是结束原来的语句执行第2条语句??

miaohaiyun2004 发表于 2011-5-10 08:59:57

大家帮个忙吧!!高手指点下

cs9874123 发表于 2011-5-10 10:31:00

如果第一个while中的条件为假(0),则跳出第一个循环,然后执行到第2个while。
如果你不敢肯定我说的正确与否,你可以用keil或者GDB来做单步仿真测试,就可以知道程序的实际运行了
程序的仿真与调试是学习C的必备技能啊

cs9874123 发表于 2011-5-10 10:34:45

晕....看明白你的问题了,
程序是继续执行原来的语句,直到break;跳出第一个while,while的判断每个程序周期只执行一次,并非像中断那样实时监控变量的变化

LGQ72111 发表于 2011-6-11 21:26:30

{:soso_e100:}{:soso_e100:}
页: [1]
查看完整版本: 关于C51内部程序执行方式