title: Will A Compiler Remove An If Block That Always Evaluates to Zero?
body: <p>Will the compiler remove this if statement?</p>
  
  <pre><code> #define DEBUG 0
   int main(int argc, char ** argv)
   {
      if(DEBUG)
      {
         ...
      }
      return 0;
   }
  </code></pre>
  
  <p>I tried to google this, and search stackoverflow but I think my search terms were bad because I couldn't find the information.</p>
  
  <p>If this is optimized what would I want to read about to learn about the optimization?</p>
  
  <p>Constantin</p>