如何在C中对函数进行排序? “以前的函数隐式声明在这里”错误

我确定以前曾经问过,但我找不到任何能帮到我的东西。 我有一个C语言的程序,看起来像这样

function2(){ function1() } function1 (){ function2() } main () { function1() } 

它比这更复杂,但我正在使用递归。 而且我无法在文件中安排该函数,以便每个函数只调用上面指定的函数。 我一直收到错误

 main.c:193: error: conflicting types for 'function2' main.c:127: error: previous implicit declaration of 'function2' was here 

我该如何避免这种情况? 提前感谢您的建议和解答。

在使用之前,您需要声明(不定义)至少一个函数。

 function2(); /* declaration */ function1() { function2(); } /* definition */ function2() { function1(); } /* definition */ int main(void) { function1(); return 0; } 

Foward宣布你的职能……

 function1(); function2(); function2(){ function1() } function1 (){ function2() } main () { function1() } 

尝试:

 function1(); function2(); function2(){ function1() } function1 (){ function2() } main () { function1() } 

转发声明你的function,但通过使用原型 。 如果你有很多这样的东西你无法解决这个问题,那么现在就考虑你的设计并用你的所有原型创建一个.h文件。 使用

 int function1(void); int function2(void); 

如果这就是你的意思。 int function1()已经不同于C.帮助编译器,他可以帮助你。

这就是C的工作原理。 我们需要在使用前声明该函数。 比如当你使用任何变量时,你必须先声明然后你才能使用它。

声明: – function1(); 函数2(); 然后把你自己的代码。