c语言 else if中的语句中 跳过不运行。

else if(xz<=0&&yz>0)
{
shun13(xq,yq,r*(-1),0,t);
shun24(r*(-1),0,xz,yz,t);
}
在调试的时候,能运行到shun13(xq,yq,r*(-1),0,t)这一步,但不去调用shun13这个子函数,接着直接跳过shun24,跳出这个else if。我很奇怪调试的时候,它能正确的进入到这个条件语句里面,可是就是不去运行。这种类型的语句在我的程序里很多地方用到 似乎唯独这里出问题 求解 急死了

据我了解,这可能有两种情况:

1、虽然语句上可能无法设断点,但事实上是因为编译优化时将此句与其它相同或相似部份合并。这种情况可以在你执行到shun13时,在shun24函数体内设个断点,在else if判断体外的下一条可执行语句上也设个断点,看看是否程序执行了shun24。
2、编译器问题。极少,但我遇见过。这就比较麻烦了,处理方法没有一定之规。一般可能要重写一下语句,比如此例中多用个中间变量xx = r*(-1),然后再调用,总之就是改变一下结构或算法,有时需要多试几次。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-16
看看你的程序···
第2个回答  2011-08-16
Rebuild整个项目吧,我常遇到这种问题,Visual studio 的Bug来着,调试与代码不同步,实际上代码是正确执行了的,只是调试显示有点问题。
第3个回答  2011-08-16
设个断点看看啊,你是用gdb调试吗
第4个回答  2011-08-16
删除以前的编译文件,重新编译下。我也有遇到的。
相似回答