是int foo(){return foo();一个递归函数?

时间:2015-02-26 17:39:50

标签: c function recursion

威尔:

int foo();

int foo()
{
    return foo();
}

永久循环或只运行两次函数(一次隐式,一次一次终止)。

2 个答案:

答案 0 :(得分:5)

是的,foo()是一个递归函数,导致无限循环。

如果你的编译器优化尾递归,那么它很可能会一直持续到你杀死它为止。如果编译器没有优化尾递归,那么最终会溢出堆栈和/或耗尽内存。

答案 1 :(得分:2)

是的,它是一个没有任何基本情况的递归函数。因此它永远不会正常终止。