title: How can I generate unique values in the C preprocessor?
body: <p>I'm writing a bunch of related preprocessor macros, one of which generates labels which the other one jumps to. I use them in this fashion:</p>
  
  <pre><code>MAKE_FUNNY_JUMPING_LOOP(
    MAKE_LABEL();
    MAKE_LABEL();
  )
  </code></pre>
  
  <p>I need some way to generate unique labels, one for each inner <code>MAKE_LABEL</code> call, with the preprocessor. I've tried using <code>__LINE__</code>, but since I call <code>MAKE_LABEL</code> inside another macro, they all have the same line and the labels collide.</p>
  
  <p>What I'd like this to expand to is something like:</p>
  
  <pre><code>MAKE_FUNNY_JUMPING_LOOP(
    my_cool_label_1:  // from first inner macro
    ...
    my_cool_label_2:  // from second inner macro
    ...
  )
  </code></pre>
  
  <p><em>Is there a way to generate hashes or auto-incrementing integers with the preprocessor?</em></p>