想象一下这些版本中的一个函数:
int faculty(const unsigned int n) {
return n == 1 ? n : n * faculty(n - 1);
}
Run Code Online (Sandbox Code Playgroud)
int faculty(const unsigned int n) {
return n == 1 ? 1 : n * faculty(n - 1);
}
Run Code Online (Sandbox Code Playgroud)
唯一的区别是我n在第一个和1第二个中返回,具体取决于n. 结果是相同的,但是在忽略重要性的同时,您是否可以意识到其他任何差异?
我知道编译器很有可能会从中生成相同的汇编指令,但是嘿,我只是好奇。