title: How multiple function declaration at a time works?
body: <pre><code>#include &lt;stdio.h&gt;
  
  int main()
  {
      void foo(), f();
      f();
  }
  
  void foo()
  {
      printf("2 ");
  }
  
  void f()
  {
      printf("1 ");
      foo();
  }
  </code></pre>
  
  <p><strong>Output:</strong><br>
  <code>1 2</code></p>
  
  <p>How the declaration is working here?
  And if I define F() before foo() I am getting error.</p>
  
  <p><strong>Wrong!</strong></p>
  
  <pre><code>#include &lt;stdio.h&gt;
  
  int main()
  {
      void foo(), f();
      f();
  }  
  
  void f()
  {
      printf("1 ");
      foo();
  }
  
  void foo()
  {
      printf("2 ");
  }
  </code></pre>
  
  <p><strong>ERROR</strong></p>
  
  <pre><code>&gt; main.c: In function 'f': main.c:21:13: error: incompatible implicit
  &gt; declaration of function 'foo'
  &gt;              foo();
  &gt;              ^ main.c:7:18: note: previous implicit declaration of 'foo' was here
  &gt;              void foo(), f();
  
                ^
  </code></pre>
  
  <p>Why is this happening?</p>