C语言小技巧

 

/*
求阶乘时设置最大调用层数,防止栈占满
当从函数进入另一个函数时当前函数的内容会入栈,另一个函数调用完时在出栈
*/
int factorial(int n, int level)
{
    //printf("%d \n", level);

    if(level>3)
    {
        printf("exit");
        return -1;
    }
    if(n==0 || n==1)
    {
        return 1;
    }

    return n*fn(n-1,++level);
}

 

你可能感兴趣的:(C语言)