title: Implicit declaration of function and conflicting type warning
body: <p>I am currently writing a program in C. Everything works fine, but I get a couple of warning when trying to calk 'make':</p>
  
  <pre><code>src/command.c: In function ‘cmd_create’:
  src/command.c:43:3: warning: implicit declaration of function ‘iterator_init’ [-    Wimplicit-function-declaration]
     iterator_init(&amp;it);
     ^
  src/command.c:49:6: warning: implicit declaration of function ‘iterator_destroy’ [-    Wimplicit-function-declaration]
        iterator_destroy(&amp;it);
        ^
  src/command.c: At top level:
  src/command.c:218:6: warning: conflicting types for ‘iterator_init’ [enabled by default]
   void iterator_init(iterator *it) {
        ^
  src/command.c:43:3: note: previous implicit declaration of ‘iterator_init’ was here
     iterator_init(&amp;it);
     ^
  src/command.c:245:6: warning: conflicting types for ‘iterator_destroy’ [enabled by     default]
   void iterator_destroy(iterator *it) {
        ^
  src/command.c:49:6: note: previous implicit declaration of ‘iterator_destroy’ was here
        iterator_destroy(&amp;it);
        ^
  </code></pre>
  
  <p>My research showed that this usually happens when thefunction is declared after the actual call. </p>
  
  <p>However i have properly put the prototypes the of the function in my header files, so was wondering what else could cause this. Is my makefile maybe not set correctly?</p>
  
  <p>The source of my application located on <a href="https://github.com/fish-guts/concurrent" rel="nofollow">https://github.com/fish-guts/concurrent</a></p>