title: Concatenation of tokens in variadic macros
body: <p>In C, is it possible to concatenate each of the variable arguments in a a variadic macro? </p>
  
  <p>Example: </p>
  
  <pre><code>MY_MACRO(A, B, C) // will yield HDR_A, HDR_B, HDR_C
  MY_MACRO(X, Y)    // will yield HDR_X, HDR_Y
  </code></pre>
  
  <p>The normal <code>##</code> operator has special meaning for variadic macros (avoiding the comma for empty argument list). And concatenation when used with <code>__VA_ARGS__</code> takes place with the first token only. </p>
  
  <p>Example: </p>
  
  <pre><code>#define MY_MACRO(...) HDR_ ## __VA_ARGS__
  
  MY_MACRO(X, Y)    // yields HDR_X, Y
  </code></pre>
  
  <p>Suggestions? </p>