C语言中函数之间的控制权交换

Sai*_*eep 1 c

考虑以下情形:

fn(1)调用fn(2),然后fn(2)调用fn(3),现在fn(3)应该将控件传递给fn(1)而不是fn(2),并且控件不得再次返回。

关于这一点,我尝试使用goto,但是goto在函数之间不起作用,它仅是局部跳转。

我想检查是否可以使用其他方法将控件发送到另一个函数

注意:根据我的探索,在这种情况下,没有全局变量,指向函数的指针将起作用

Eri*_*rik 5

好吧,典型的方法是:

int fn3() {
  return 1;
}

void fn2() {
  if (fn3())
    return;
  ...
}
Run Code Online (Sandbox Code Playgroud)

不知道您是否正在寻找更深奥的东西,例如setjmp / longjmp