title: Is there a GCC preprocessor directive to check if the code is being compiled on a 64 bit machine?
body: <p>I am trying to do something like the following;</p>
  
  <pre><code>#ifdef 64-bit
      #define DECIMAL_FORMAT %ld
  #else
      #define DECIMAL_FORMAT %d
  #endif
  .
  intptr_t d;  
  .
  printf(“Some message with DECIMAL_FORMAT in the middle of it\n”, d);
  </code></pre>
  
  <p>The variable 'd' being of the type 'intptr_t' needs '%d' format specifier on 32 bit machines and format specifier '%ld' on 64 bit machines. I am looking a solution to be able to compile the code on both 32 bit machines and 64 bit machines without making changes to the GCC command line or the source code.</p>