title: C++ conditional compilation
body: <p>I have the following code snippet:</p>
  
  <pre><code>#ifdef DO_LOG
  #define log(p) record(p)
  #else
  #define log(p)
  #endif
  
  void record(char *data){
  .....
  .....
  }
  </code></pre>
  
  <p>Now if I call <code>log("hello world")</code> in my code and <code>DO_LOG</code> isn't defined, will the line be compiled, in other words will it eat up the memory for the string "hello world"? </p>
  
  <p>P.S. There are a lot of record calls in the program and it is memory sensitive, so is there any other way to conditionally compile so that it only depends on the <code>#define DO_LOG</code>? </p>