我确定以前曾经问过这个问题,但我找不到任何可以帮助我的事情。 我有一个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
我该如何避免这种情况?提前感谢您的建议和解答。
答案 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(); 然后把你自己的代码。