所以,如果我有一个带有全局变量var_的递归函数:
int var_;
void foo()
{
if(var_ == 3)
return;
else
var_++; foo();
}
Run Code Online (Sandbox Code Playgroud)
然后我有一个函数调用foo()所以:
void bar()
{
foo();
return;
}
Run Code Online (Sandbox Code Playgroud)
什么是每次调用foo时设置var_ = 0的最佳方法,而不是来自内部.我知道我可以这样做:
void bar()
{
var_ =0;
foo();
return;
}
Run Code Online (Sandbox Code Playgroud)
但我正在使用递归函数,我不想调用foo而忘记在以后设置var_ = 0.
有没有人对如何解决这个问题有任何建议?
谢谢,乔希
转foo()成一个辅助功能.
void foo() {
var_ = 0;
foo_helper();
}
void foo_helper() {
if(var_ == 3)
return;
else
var_++; foo_helper();
}
Run Code Online (Sandbox Code Playgroud)
您不必更改任何现有代码,您仍然可以调用foo()并让它完成其工作.