一个return居然跳不出函数?

Sniper167 2007-05-05 10:27:32
void function(void)
{
do
{
if(……)
return FALSE; // 这里的return能跳出function

for(……)
{
……;
if(……)
return TRUE; // 这的return跳不出function,又跳到do那了
}
}while(1);
}
...全文
1925 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
庄鱼 2007-05-09
  • 打赏
  • 举报
回复
另外,如果for语句没执行,也可能跳不出来
bool function(void)
{
do
{
if(……)
return FALSE; // 这里的return能跳出function

for(……)//--------- for(;;)
{
……;
if(……)//----------- if(true)
return TRUE; // 这的return跳不出function,又跳到do那了
}
}while(1);
}
庄鱼 2007-05-09
  • 打赏
  • 举报
回复
bool function(void)
{
do
{
if(……)
return FALSE; // 这里的return能跳出function

for(……)
{
……;
if(……) //------------- 你将这改成:if(true)return true;试试看
return TRUE; // 这的return跳不出function,又跳到do那了
}
}while(1);
}
missilery 2007-05-09
  • 打赏
  • 举报
回复
修改成
for(……)
{
……;
if(……)
{//记得加上!!!!!!!!!!!!!!!!!!!!
return TRUE;
}//记得加上!!!!!!!!!!!!!!!11
}
}while(1);
}

然后调试!!!
oyd 2007-05-09
  • 打赏
  • 举报
回复
这里告诉你一个秘诀:
你在有问题的语句那里查看汇编代码,看看你的代码究竟被编译器编成了什么样子,一切就真相大白了。
不懂汇编没问题,有C语言一句一句对照
自由建客 2007-05-09
  • 打赏
  • 举报
回复
我见过一个主版有问题,程序老是出错的,居然还不是太随机的错误。
yach_jerry 2007-05-08
  • 打赏
  • 举报
回复
bool function(void)
=====================
改过之后,还是有错.可以单步调试,找出原因.建议程序发上来,大家一起看.
hioucia 2007-05-08
  • 打赏
  • 举报
回复
把false直接去掉,return 语句就类似break语句了!应该就可以,反正返回值不会被使用
rendonglin2007 2007-05-08
  • 打赏
  • 举报
回复
为什么是return?function不是void的吗?
kunder 2007-05-07
  • 打赏
  • 举报
回复
至少两种可能:
1.编译有问题
2.没有执行到return语句
调试以下就知道了
277894613 2007-05-07
  • 打赏
  • 举报
回复
删除nbc重新编译
liqiang123abc 2007-05-07
  • 打赏
  • 举报
回复
超级菜鸟?!
archer_hao 2007-05-07
  • 打赏
  • 举报
回复
极有可能是代码和可执行程序对应不上,PDB的问题,rebuild一次
starair 2007-05-07
  • 打赏
  • 举报
回复
第二个return没有执行,死循环
z403617596 2007-05-06
  • 打赏
  • 举报
回复
看看就知道前后矛盾啊
nov30th 2007-05-06
  • 打赏
  • 举报
回复
楼上的,C怎么学的。

return 是返回,break是跳出循环。
IT_zen 2007-05-06
  • 打赏
  • 举报
回复
return TRUE; // 这的return跳不出function,又跳到do那了
这个只是跳出了for循环
laiwusheng 2007-05-06
  • 打赏
  • 举报
回复
bool function(void)
{
do
{
if(……)
return -1; // 这里的return能跳出function

for(……)
{
……;
if(……)
return 1; // 这的return跳不出function,又跳到do那了
}
}while(1);
return 0;
}
thecorr 2007-05-06
  • 打赏
  • 举报
回复
编译器的问题?
mdzhao 2007-05-06
  • 打赏
  • 举报
回复
以前遇到过类似情况,函数返回时跳到毫不相干的函数里面去了!

在改正了一个数组越界问题后就好了,估计是刚好破坏了调用堆栈造成的
he_ji001 2007-05-06
  • 打赏
  • 举报
回复
晕,,,,自己多调试,看看,,还发到网上来
加载更多回复(15)

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧