带有return的C函数类型的递归

jum*_*umm 4 c recursion

这是一个快速的问题,我做了一个搜索,但找不到任何回答我的问题.

在C中执行递归函数时,即使使用void函数也需要返回吗?

例如:

    void addToLL(structA_ptr new, structA_ptr cur) {
        if (cur->next == NULL) {
             cur->next = new;
        } else {
             addToLL(new, cur->next);
        }
    }
Run Code Online (Sandbox Code Playgroud)

我是否需要在调用函数之前放置一个return关键字?我知道如果函数会返回一些东西,比如在LL中搜索某些内容,则需要一个return语句.

Dar*_*rio 9

不,你不需要它.

答案很长:你的递归函数与其他函数一样执行,如果没有遇到递归调用,它就会被终止.您不需要明确的退货.你可以,如果你想提前退出的功能使用.