【发布时间】:2014-04-18 00:51:08
【问题描述】:
有人知道以下之间的内部差异吗:
void RecFoo1(int bar){
if (bar == 0)
return ;
RecFoo1(bar - 1);
}
和
void RecFoo2(int bar){
if (bar == 0)
return ;
return RecFoo2(bar - 1);
}
我相信,最好使用 return 关键字。如果递归函数不是 void 函数,则会收到来自-Wreturn-type 的警告。但是这两段代码是否以相同的方式编译/执行?机器的内部差异是什么?
我的函数示例很愚蠢,但它构成了一种最小示例......
【问题讨论】:
-
一个是合法的C,另一个不是。您不能返回 void 表达式。