title: Preprocessor macro without replacement C++
body: <p>According to cplusplus.com, the syntax to define a macro is:</p>
  
  <pre><code>#define identifier replacement
  </code></pre>
  
  <p>However, I sometimes stumble upon a macro definition which doesn't contain a replacement. For example in afxwin.h, there is the following preprocessor definition:</p>
  
  <pre><code>#define afx_msg         // intentional placeholder
  </code></pre>
  
  <p>My questions:</p>
  
  <ol>
  <li>What happens at compile-time when a preprocessor definition that doesn't have a replacement is used? Is it simply ignored? For example, does the line <code>afx_msg void OnAddButton();</code> become <code>void OnAddButton();</code>?</li>
  <li>What is the purpose of using preprocessor without replacement? Is it simply to make code more clear?</li>
  </ol>