如何启用递归函数以避免堆栈溢出?

时间:2019-04-17 19:08:43

标签: c++ recursion

如果我在Java中具有递归函数,则可以使用以下代码无限调用它:

void recfunction()
{
    recfunction();
    System.gc();
}

如何在C ++中做到这一点?

1 个答案:

答案 0 :(得分:2)

没有强制C ++编译器对递归函数执行尾调用优化的标准方法。

话虽如此,带有-O2的gcc8实际上会在可能的情况下执行尾部调用优化。

https://godbolt.org/z/tSDODA