title: Preprocessor directive #ifndef for C/C++ code
body: <p>In eclipse, whenever I create a new C++ class, or <strong>C</strong> header file, I get the following type of structure.  Say I create header file example.h, I get this:</p>
  
  <pre><code>/*Comments*/
  #ifndef EXAMPLE_H_
  #define EXAMPLE_H_
  /* Place to put all of my definitions etc. */
  #endif
  </code></pre>
  
  <p>I think ifndef is saying that if EXAMPLE_H_ isn't defined, define it, which may be useful depending on what tool you are using to compile and link your project.  However, I have two questions:</p>
  
  <ol>
  <li><p>Is this fairly common?  I don't see it too often.  And is it a good idea to use that rubric, or should you just jump right into defining your code.</p></li>
  <li><p>What is EXAMPLE_H_ exactly?  Why not example.h, or just example?  Is there anything special about that, or could is just be an artifact of how eclipse prefers to auto-build projects?</p></li>
  </ol>