title: What types of expressions are evaluated at compile time?
body: <p>What types of expressions are evaluated at compile time?</p>
  <p>I had this problem because I was learning conditional compilation.
  <code>#if</code> is followed by constant-expression in conditional compilation and constant-expression should be evaluated at compile time.
  I want to learn what kind of expression can be constant-expression and can follow <code>#if</code>.</p>
  <pre><code>#if x&gt;0 || defined(ABC) &amp;&amp; defined(BCD)
  </code></pre>
  <p>Is this right, especially <code>x&gt;0</code>?</p>