keil中有些语句为什么不执行! 图中89和90行语句在单步调试的时候为什么从不执行,即使满足条件也不执行

while(1)
{
if(((keyb!=0)&&((sense0==0)||(sense1==0)))==1)
{ delay(15);
if(keyb!=0)
{
stop();
delay(20);
break;
}
}
else if(((keyb==0)&&((sense0==0)||(sense1==0)))==1)
{ delay(15);
if(keyb==0)
{
stop();
delay(20);
break;
}
}
else if(((keyb==0)&&(sense0==1)&&(sense1==1))==1)
{ delay(15);
if(keyb==0)
{
stop();
delay(20);
break;
}
else;

}
}
这是程序所在的循环,优化等级已经设置为0,还是不行!!!!!!!!!!望高手赐教!

是执行的!
只是单步运行时,它跳到stop这个函数中运行,就是说它进入了这个函数所在的程序继续运行。(你看不到的原因就是指针已经不在当前的第89行了,而是切换到stop()函数所在的程序地址去运行了。)
不信,你可以试试,通过切换到汇编界面单步执行就可以清楚看到程序运行的每一步了。追问

左边标明页码的地方没有阴影显示啊,就是说程序到了这里,这两句是不会执行的啊,别的stop语句那里就有阴影,这就奇怪了,为什么这个if里的stop不执行呢?貌似指针也没指向stop那里啊~

追答

C语言上没什么逻辑错误。
那这段程序下面还有程序吗?
它对应的汇编是什么?

温馨提示:内容为网友见解,仅供参考
无其他回答

芯片(单片机)是怎么认识程序转化来的二进制,0是低电平,1是高电平使...
手机不再是单纯的手机,它是有情感的智能机器人,而它的芯片被别人控制,我们不仅仅要学会和人相处,更要学会和手机处理好关系,它一不高兴,就有办法给我们设置阻碍,天下之大,能人倍出,望老天爷快速研究出新的东西来智胜它吧,不想被手机控制,望转发!保护自己自己的隐私是每个公民的权利!

为什么,jxssq(n)函数中的循环,执行出来的结果怎么都是一样的。如何能...
④switch开关语句:该语句也是多分支选择语句,到底执行哪一块,取决于开关设置,也就是表达式的值与常量表达式相匹配的那一路,它不同if…else 语句,它的所有分支都是并列的,程序执行时,由第一分支开始查找,如果相匹配,执行其后的块,接着执行第2分支,第3分支……的块,直到遇到break语句;如果不匹配,查找下一个分支...

相似回答