title: Tips on using preprocessor #ifndef
body: <p>I'm learning C and hope someone can explain what's the logic of using <code>#ifndef</code>?</p>
  
  <p>I also find many C programs I looked, people seems following a convention using the filename following the <code>#ifndef</code>, <code>#define</code> and <code>#endif</code>. Is there any rule or tip on how to choose this name?</p>
  
  <pre><code>#ifndef BITSTREAM_H
  #define BITSTREAM_H
  
  #include &lt;stdio.h&gt;
  #include &lt;stdint.h&gt;
  
  /*Some functions*/
  
  #endif
  </code></pre>