Chinaunix首页 | 论坛 | 博客
  • 博客访问: 654640
  • 博文数量: 205
  • 博客积分: 7891
  • 博客等级: 少将
  • 技术积分: 2168
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-29 13:16
文章分类

全部博文(205)

文章存档

2015年(4)

2014年(5)

2013年(1)

2012年(4)

2011年(51)

2010年(86)

2009年(45)

2008年(9)

分类: C/C++

2009-08-22 00:51:55

    在调用函数时,又直接或间接地调用该函数本身,这种情况称为函数的递归调用。
    
    例如求正数n的阶乘的程序如下:
    #include"reg51.h"
    #include"stdio.h"
    long factorial(int n) reentrant
    {
        long result;
        if (n==0)
           result=1;
        else
           result=n*factorial(n-1);
        return result;
    }
    void main()
    {
        int j;
        long tmp;
        init_ser();
        for (j=0;j<11;++j)
        {
           tmp=factorial(j); 
        }
        for(;;) {;}
    }
 
通过 增加关键字reentrant来允许函数进行递归调用。
阅读(1432) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~