我有一个代码:
void core()
{
loop
{
first_process();
secound_process();
process_synchronizer();
}
some_other_job();
}
在进程suynchronizer()
中,我评估同步,如果不满足条件,它将中断循环,问题是break
不允许在该函数中使用,因为它不在循环中。
void process_synchronizer()
{
if(criterion)
do something;
else
break;
}
但是c
编译器不允许使用break
:break statement not within loop or switch
3条答案
按热度按时间kxe2p93d1#
像这样:
或者这个:
然后调整你的函数以返回合适的值,如下所示:
h43kikqp2#
或许:
那就这么叫吧:
或者像这样:
或者更短,就像@David在评论中提到的:
vzgqcmou3#
假设您的两个“process”函数和“synch”函数都希望返回go/no-go状态,那么您不需要太多代码:
远离
void
函数可能是个好主意(编写这些函数是为了执行某些功能,但无法将其成功/失败传达给调用者)。