title: C++ #ifndef TOKEN #define TOKEN
body: <p>There has been a few cases where I've seen preprocessor code like the following:</p>
  
  <pre><code>#ifndef TOKEN
  #define TOKEN
  #endif
  </code></pre>
  
  <p>To me, it seems that in this situation (I'm aware of it's use when wrapped around items other than it's self (including include guards for those who are still answering)), it is redundant to check if TOKEN is already defined before defining it. If I were to just #define it, without the checks, the result is the same.</p>
  
  <p>Is there a common reason for this? Compilation times? Reserving the block for future additions?</p>
  
  <p>Thanks.</p>