如何仅在递归函数调用中第一次调用另一个函数?

时间:2013-04-03 06:20:12

标签: c

我想调用“function2();”仅在第一次调用recurfunc()时的单次时间。

recurfunc()
{
    function2();     //to be called first time only in a recursive function
    static int i= 0;
    i++;

    if(i>20)
        return;
    else
    recurfunc();
}

2 个答案:

答案 0 :(得分:8)

对代码进行微不足道的更改:

void recurfunc()         // * Remember to specify return type *
{
    static int i= 0;

    if (i==0)
        function2();     // called only the first time.

    i++;

    if(i>20)
        return;
    else
        recurfunc();
}

答案 1 :(得分:3)

使用帮助函数:

void recurfunc() {
   function2();
   helperRecurFunc();
}

其中helperRecurFunc()是您原始的方法而没有调用func2()