gpt4 book ai didi

c - 尾递归在C语言上真的厉害吗?

转载 作者:太空宇宙 更新时间:2023-11-04 05:17:19 26 4
gpt4 key购买 nike

我认为 Tail-recursive对函数式编程语言很有帮助。C呢?

  • C 语言或编译器是否支持尾调用消除
  • 程序是否为新调用创建了新的栈帧?

来自维基:

Tail calls can be implemented without adding a new stack frame to thecall stack. Most of the frame of the current procedure is not neededany more, and it can be replaced by the frame of the tail call,modified as appropriate (similar to overlay for processes, but forfunction calls).

The program can then jump to the called subroutine. Producing suchcode instead of a standard call sequence is called tail callelimination.

最佳答案

尾递归通常用在函数式语言中,因为它是在结构上实现循环的自然方式,而在过程语言中实际上并没有那么多递归。

因此过程语言不需要它。但是,由编译器决定是否找到此类优化。

关于c - 尾递归在C语言上真的厉害吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35157410/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com