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

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


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

最佳答案

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

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

https://godbolt.org/z/tSDODA

关于c++ - 如何启用递归函数以避免堆栈溢出?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55734443/

10-09 13:43