How to sort functions in C? "previous implicit declaration of a function was here" error
I'm sure this has been asked before, but I couldn't find anything that would help me. I have a program with functions in C that looks like this
function2(){
function1()
}开发者_开发技巧
function1 (){
function2()
}
main () {
function1()
}
It's more complicated than that, but I'm using recursion. And I cannot arrange the function in the file so that every function would only call functions that are specified above itself. I keep getting an error
main.c:193: error: conflicting types for 'function2'
main.c:127: error: previous implicit declaration of 'function2' was here
How do I avoid this? Thanks in advance for suggestions and answers.
You need to declare (not define) at least one function before using it.
function2(); /* declaration */
function1() { function2(); } /* definition */
function2() { function1(); } /* definition */
int main(void) { function1(); return 0; }
Foward declare your functions...
function1();
function2();
function2(){
function1()
}
function1 (){
function2()
}
main () {
function1()
}
Try:
function1();
function2();
function2(){
function1()
}
function1 (){
function2()
}
main () {
function1()
}
Forward declare your functions, but by using prototypes. If you have a lot of them such that you can't handle this, this is the moment to think of your design and to create a .h file with all your prototypes. Use
int function1(void);
int function2(void);
if that was what you meant. int function1()
already is different from that in C. Help the compiler such that he can help you.
This is how C works. We need to declare the function before use. like when you use any variable, you must have declare first then you would have use it.
Declaration:- function1(); function2(); and then put your own code.
精彩评论