要以最简单的形式显示,您可以执行以下操作:
void foo(bool & ret) {
// doStuff...
if (ret) return;
foo(ret);
// doStuff...
if (ret) return;
foo(ret);
}
然后,您启动递归:
bool ret = false;
foo(ret);
在您的情况下,您可以通过以下方式中断递归
if (!changesLeft) {
printf("%s\n", str);
ret = true;
return;
}
设置为true将使您脱离整个调用树。
您也可以在C语言中完成操作,只需使用指针而不是引用即可。