title: Checking type of a variable by preprocessor directive
body: <p>Is there a way to check the type of variable by preprocessor ?<br>
  Actually I want to do something like this :   </p>
  
  <pre><code>//test.c
  int main(void)
  {
      TYPE a=6;
  #if TYPE==int
      printf("%d\n",a);
  #elif TYPE==float
      printf("%f\n",a);
  #endif
  }
  </code></pre>
  
  <p>Now I use it as :   </p>
  
  <pre><code>gcc -o test -D TYPE=float test.c
  </code></pre>
  
  <p>But it is not working. TYPE is always matching with int and giving result according to %d.<br>
  Please help me to solve this problem.</p>