使用返回;在递归函数中

时间:2015-09-02 14:15:23

标签: c++ return

<event>
   <name>Jazz festival</name>
   <place>Rome</place>
   <date>23/06/2014</date>
</event>

在代码中,返回评论时得到的输出与未评论时的输出相同。

我想问的是,如果我在函数末尾使用#include <stdio> using std::cout; void CountDown(int N) { if(N == 0) { return; } cout << N; CountDown(N-1); //return; } 语句,它是否会有所不同(因为它会在括号结束时隐式返回到调用它的函数) )?

另一个问题: 如果在这里有一个返回类型而不是void的函数会怎么样? 我尝试了一个功能。值是错误的。但没有编译器错误。 所以简单地使用return;没有任何区别对吗?除非我想过早地结束这项功能吗?

2 个答案:

答案 0 :(得分:4)

对于void返回函数,没有它没有区别。但是,如果该函数需要返回任何 void,那么您需要为所有代码路径包含有效的return

答案 1 :(得分:2)

void函数结束时,控件会自动返回到调用函数,因此最后不需要return;。 void函数中的return用于在if语句中通常需要之前退出函数。

如果你有一个应该返回一个值的函数,那么那就是undefined behavior