【发布时间】:2010-11-29 01:51:00
【问题描述】:
我正在尝试理解 C 代码。在某些地方有:
for ...{
if condition{
a=1;
break;
}
}
在以后的版本中改为:
for ...{
if condition{
goto done;
}
}
done: a=1;
在我看来,两个版本应该给出相同的结果,但它不会发生。你知道为什么吗?
更正:修复是:
for ...{
if condition{
goto done;
}
}
goto notdone;
done:
ok=0;
notdone:
【问题讨论】:
-
这是整个代码还是有更多的嵌套循环?
-
不,没有更多的嵌套循环
-
我看到您的更正,我承认它与版本 1 相同,但我不明白为什么您会用另一个使用不直观的
gotos 集的解决方案替换完美的解决方案...