C++ 中的尾递归优化代码

发布于 2024-12-08 15:11:38 字数 68 浏览 0 评论 0原文

我想了解尾递归优化的影响,并想以尾递归优化的方式编写简单的阶乘函数。 是否可以在没有编译器支持的情况下在代码中执行此操作?

I wanted to see the impact of tail recursion optimization and want to write simple factorial function in a tail recursion optimized way.
Is it possible to do this in the code without compiler supporting it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

无悔心 2024-12-15 15:11:38

编译器进行优化。因此,如果没有编译器支持,就不可能对其进行测试。

在代码中执行此操作的唯一方法是通过迭代替换递归(但当然您会丢失递归)。

The compiler does the optimization. So it is not possible to test it without compiler support.

The only way to do this in code is to replace the recursion by iteration (but then of course you lose the recursion).

守护在此方 2024-12-15 15:11:38

尾递归优化将具有尾递归属性的函数转换为迭代,要在没有编译器支持的情况下执行此操作,您必须执行递归 ->手动迭代。请注意,您可能会失去代码的可读性(递归函数往往更短且更容易理解)并且需要大量代码更改(从而彻底改变您的大脑)。如果我需要这样做,我通常将原始递归函数放在转换后的迭代版本上方的注释中。

Tail recursion optimization turns functions with tail recursion property into iteration, to do it without compiler support, you have to do the recursion -> iteration manually. Note that you may lose readability of your code (recursive functions tend to be shorter and easier to understand) and need a lot of code change (thus turning your brains inside out). If I need to do this, I usually put the original recursive function in a comment above the converted iterative version.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文