C函数无限循环问题

C Function Infinite Loop issue

我相信有一个简单的解决方案可以解决我的问题,但我的脑子太热了,现在无法思考。

在我的主要函数中,我有一个我们将调用的函数 "Function1"。在 "Function1" 中,我调用了另一个函数来验证 "Function1" 中的数据,让我们称之为 "Function2"。为了让 "Function2" 做好它的工作,它需要再次调用 "Function1"。这显然是我如何获得 "Function1" 和 "Function2" 的无限循环,反复相互调用。我需要创建跟踪此方法的方法,以便在第一次通过 Main --> Function1 --> Function2 --> Function1 --> End 后停止循环,但我的实现一直失败。

非常感谢任何帮助和指导。

您需要将级别计数器传递给函数 1。第一次调用时level为0。如果level为0,则可以调用function2。如果它 > 0 则不调用 function2。 当 function2 调用 function1 时,它将级别设置为 1(或增加)。 这就是你进行递归调用的方式。当然,您可以根据需要将结束条件更改为其他内容(而不仅仅是 0 和 1)。

您可以设置一个计数器整数,并且只有当计数器小于 1 时才 运行 Function2(或者您希望循环在中断之前迭代多少次)。

例如(伪代码):

int count;

  Function1{  
    ...  
    while(count < 1){  
      Function2{  
        ....     //Function2 code
        count++;  
    }  
  }  
  ..   //any code from Function1 that should run after Function2  
}

(请注意,如果您愿意,您也可以使用布尔值来执行此操作 - 我更喜欢整数方法,因为您可以很容易地在突破之前更改迭代次数)