title: Datatypes produced by #define in C++
body: <p>If I define values in C/C++ using #define, what datatype, if at all, do they assume?  For example:</p>
  
  <pre><code>#define PI 3.14159
  #define LAMBDA 6.0e-04
  #define DT LAMBDA/2.0
  </code></pre>
  
  <p>and so on and so forth.  Now, the above values need to be treated as doubles in calculations in my program, but is this behavior guaranteed when using preprocessor macros?  How are they processed exactly?</p>
  
  <p>I understand that defining them as const double ... is technically better programming practice because of the ability to scope, for example, but for the purpose of the simulator I'm writing (1 .cpp and 1 .h file) this seems to be the most organized way of arranging the constants to be used throughout.</p>