title: Recursive C void function and return keyword
body: <p>Does someone know the internal differences between :</p>
  
  <pre><code>void RecFoo1(int bar){
    if (bar == 0)
      return ;
    RecFoo1(bar - 1);
  }
  </code></pre>
  
  <p>and</p>
  
  <pre><code>void RecFoo2(int bar){
    if (bar == 0)
      return ;
    return RecFoo2(bar - 1);
  }
  </code></pre>
  
  <p>I am convinced that it is always better to put the return keyword. If the recursive function is not a void function, one will get a warning from <code>-Wreturn-type</code>. But are these two piece of code compiled/executed the same way or not ? What are the internal differences for the machine ?</p>
  
  <p>My example of function is stupid but it constitute a kind of minimal example...</p>