C函数无限循环问题

时间:2016-02-04 19:43:19

标签: c function infinite-loop

我相信我的问题有一个简单的解决方案,但我的大脑太炒了,无法立即思考。

在我的main函数中,我有一个函数,我们将调用“Function1”。在“Function1”中,我调用另一个验证“Function1”中数据的函数,让我们调用“Function2”。为了使“Function2”能够很好地完成工作,需要再次调用“Function1”。这显然是我如何得到一个无限循环的“Function1”和“Function2”反复相互调用。我需要创建跟踪这个的方法,这样我可以在Main的第一次传递后停止循环 - >功能1 - >功能2 - >功能1 - >结束,但我的实施一直在失败。

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

例如(伪代码):

int count;

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

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