c语言 else if中的语句中 跳过不运行。
elseif(xz<=0&&yz>0){shun13(xq,yq,r*(-1),0,t);shun24(r*(-1),0,xz,yz,t);}在调试的时候,能运行到shu...
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。我很奇怪调试的时候,它能正确的进入到这个条件语句里面,可是就是不去运行。这种类型的语句在我的程序里很多地方用到 似乎唯独这里出问题 求解 急死了 展开
{
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。我很奇怪调试的时候,它能正确的进入到这个条件语句里面,可是就是不去运行。这种类型的语句在我的程序里很多地方用到 似乎唯独这里出问题 求解 急死了 展开
5个回答
展开全部
据我了解,这可能有两种情况:
1、虽然语句上可能无法设断点,但事实上是因为编译优化时将此句与其它相同或相似部份合并。这种情况可以在你执行到shun13时,在shun24函数体内设个断点,在else if判断体外的下一条可执行语句上也设个断点,看看是否程序执行了shun24。
2、编译器问题。极少,但我遇见过。这就比较麻烦了,处理方法没有一定之规。一般可能要重写一下语句,比如此例中多用个中间变量xx = r*(-1),然后再调用,总之就是改变一下结构或算法,有时需要多试几次。
1、虽然语句上可能无法设断点,但事实上是因为编译优化时将此句与其它相同或相似部份合并。这种情况可以在你执行到shun13时,在shun24函数体内设个断点,在else if判断体外的下一条可执行语句上也设个断点,看看是否程序执行了shun24。
2、编译器问题。极少,但我遇见过。这就比较麻烦了,处理方法没有一定之规。一般可能要重写一下语句,比如此例中多用个中间变量xx = r*(-1),然后再调用,总之就是改变一下结构或算法,有时需要多试几次。
展开全部
看看你的程序···
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Rebuild整个项目吧,我常遇到这种问题,Visual studio 的Bug来着,调试与代码不同步,实际上代码是正确执行了的,只是调试显示有点问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
设个断点看看啊,你是用gdb调试吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
删除以前的编译文件,重新编译下。我也有遇到的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询