title: C function defined as int but having no return statement in the body still compiles
body: <p>Say you have a C code like this:</p>
  <pre><code>#include &lt;stdio.h&gt;
  
  int main(){
      printf(&quot;Hello, world!\n&quot;);
      printf(&quot;%d\n&quot;, f());    
  }
  
  int f(){
  
  }
  </code></pre>
  <p>It compiles fine with gcc, and the output (on my system) is:</p>
  <blockquote>
  <p>Hello, world!</p>
  <p>14</p>
  </blockquote>
  <p>But.. but.. how is that possible? I thought that C won't let you compile something like that because f() doesn't have a return statement returning an integer. Why is that allowed? Is it a C feature or compiler omission, and where did 14 come from?</p>