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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何启用递归函数以避免堆栈溢出?相关的知识,希望对你有一定的参考价值。

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

void recfunction()

    recfunction();
    System.gc();

我怎么能用C ++做到这一点?

答案

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

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

https://godbolt.org/z/tSDODA

以上是关于如何启用递归函数以避免堆栈溢出?的主要内容,如果未能解决你的问题,请参考以下文章