0

也许有一个花哨的术语。可以说我有这个代码:

void a(){
  b();
}

void b(){
  c();
}

void c(){
  a();
  // do something
  if (FLAG_COMPLETE){
      return;
  }
}

问题是它会继续 a->b->c->a->b->c 直到 FLAG_COMPLETE 上升。之后它将通过所有这些电话按顺序追溯。有没有办法避免被调用者返回调用者函数?我知道在组装中这很容易做到。

我正在使用 C++ CLI。我想通过循环调用函数来避免堆栈溢出。

4

1 回答 1

1

如果我在字里行间读到,听起来您希望a(), then b(), then的内容c()永远运行,直到FLAG_COMPLETE设置?如果是这样,那为什么不明确地这样做呢?

void RunUntilComplete()
{
    while(!FLAG_COMPLETE)
    {
        ContentsOfA();
        ContentsOfB();
        ContentsOfC();
    }
}
于 2012-08-14T22:02:26.400 回答