title: Macro evaluation order
body: <blockquote>
    <p><strong>Possible Duplicate:</strong><br>
    <a href="https://stackoverflow.com/questions/4364971/and-in-macros"># and ## in macros</a>  </p>
  </blockquote>
  
  
  
  <p>why the output of second printf is f(1,2) what is the order in which macro is evaluated?</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #define f(a,b) a##b
  #define g(a) #a
  #define h(a) g(a)
  
  int main()
  {
    printf("%s\n",h(f(1,2)));
    printf("%s\n",g(f(1,2)));
    return 0;
  }
  
  output 12 
         f(1,2)
  </code></pre>