title: Why can't I pass void and a parameter to the function in C?
body: <pre><code>#include &lt;stdio.h&gt;
  
  void fun();
  
  int main(void) {
    fun(fun());
    return 0;
  }
  
  void fun()
  {
    printf("function is called");
  }
  </code></pre>
  
  <p>The return type of function fun is void. So the below statement should be valid right!</p>
  
  <pre><code>fun(fun())
  </code></pre>
  
  <p>But the compiler raises compilation error as <em>error: argument type 'void' is incomplete</em>. Cannot understand what the error means?</p>