title: difference between #if defined(WIN32) and #ifdef(WIN32)
body: <p>I am compiling my program that will running on linux gcc 4.4.1 C99. </p>
  
  <p>I was just putting my #defines in to separate the code that will be compiled on either windows or linux. However, I got this error.</p>
  
  <pre><code>error: macro names must be identifiers.
  </code></pre>
  
  <p>Using this code</p>
  
  <pre><code>#ifdef(WIN32)
  /* Do windows stuff
  #elif(UNIX)
  /* Do linux stuff */
  #endif
  </code></pre>
  
  <p>However, when I changed to this the error was fixed:</p>
  
  <pre><code>#if defined(WIN32)
  /* Do windows stuff
  #elif(UNIX)
  /* Do linux stuff */
  #endif
  </code></pre>
  
  <p>I was just wondering why I got that error and why the #defines are different?</p>
  
  <p>Many thanks,</p>