跳转链接
这篇文讲的很详细了,我在这儿直接引用,以宏定义的方式实现“默认参数”,方便调用。
以尾递归的方式至少有两个参数,实际上第二个参数product初值是固定的,可以用宏来包装函数名,简化调用函数时的书写。
#include <stdio.h>
#define fun_M(num) fun(num, 1) // 定义宏
int fun(int num, int product)
{
if(num < 0){
return 0;
}
if(num == 0){
return 1;
}
if(num == 1){
return product;
}
return fun(num -1, num * product);
}
int main()
{
printf("%d\n",fun_M(5)); //采用宏的方式调用
return 0;
}