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

时间:2010-12-08 13:16:24

标签: c function

我确定以前曾经问过这个问题,但我找不到任何可以帮助我的事情。 我有一个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

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

5 个答案:

答案 0 :(得分:17)

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

function2();                 /* declaration */
function1() { function2(); } /* definition */
function2() { function1(); } /* definition */

int main(void) { function1(); return 0; }

答案 1 :(得分:7)

转发声明您的功能......

function1();
function2();

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

main () {
 function1()
}

答案 2 :(得分:5)

尝试:

function1();
function2();

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

main () {
 function1()
}

答案 3 :(得分:0)

转发声明您的功能,但使用原型。如果你有很多这样的东西,你无法处理这个问题,那么现在就考虑你的设计并创建一个包含所有原型的.h文件。使用

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

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

答案 4 :(得分:0)

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

声明: - 功能1(); 函数2(); 然后把你自己的代码。

相关问题