title: Include statements outside include guards
body: <p>I recently started working on a project where I came across this:</p>
  
  <pre><code>#include &lt;string.h&gt; // includes before include guards
  #include "whatever.h"
  
  #ifndef CLASSNAME_H // header guards
  #define CLASSNAME_H
  // The code
  #endif
  </code></pre>
  
  <p>My question: Considering all (included) header files were written in that same style: Could this lead to problems (cyclic reference, etc.). And: Is there any (good) reason to do this?</p>