title: What does ## mean for the C(C++) preprocessor?
body: <p>I have a <strong>C</strong> program below:</p>
  
  <pre><code>#define f(g,g2) g##g2
  main()
  {
  int var12=100;
  printf("%d",f(var,12));
  }
  </code></pre>
  
  <p>when I run just the preprocessor it expands  this as </p>
  
  <pre><code>{
  int var12=100;
  printf("%d",var12);
  }
  </code></pre>
  
  <p>which is the reason why the output is 100.</p>
  
  <p>Can anybody tell me how/why the preprocessor expands <code>var##12 to var12</code>?</p>