开发者

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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜