一个简单的c语言问题,求解答

怎么用递归定义阶乘函数,求解答谢谢,有代码吗各位大佬!!!!!!!!!!!!!!!!!!!!!!

#include <stdio.h>
int mmp(int i){
int sum;
if(i == 0){
sum = 1;
}
else{
sum = i * mmp(i - 1);
}
return sum;
}
int main(){
int sum = 0;
sum = mmp(8);
printf("8! = %d\n", sum);
return 0;
}

int  fun(int n)
{
  if(n==1)
    return 1;
  return fun(n-1)*n;
}