title: The purpose of wrapping headers with #ifdef _cplusplus
body: <pre><code>#ifdef _cplusplus
     #include headerfile.h
  #endif
  </code></pre>
  
  <p>I understand the concept behind this, though I don't exactly understand why it's needed.</p>
  
  <p>If the purpose is to prevent "mangling" of headers when the code isn't compiled in C++:</p>
  
  <p>-how is the code compiled if not in C++?</p>
  
  <p>-how would the code continue to function without that header?</p>
  
  <p>And tangentially:</p>
  
  <p>-what circumstances would require this?</p>