title: Use of pasting operator `##` with types in C
body: <p>Is it possible to define a macro for the C preprocessor which takes an array as argument and expands to <code>&lt;type of array elements&gt;_string</code>? For example if <code>x</code> in an array of integers the macro invoked with argument <code>x</code> should expand to <code>int_string</code>.</p>
  
  <p>I tried with</p>
  
  <pre><code>#define TypePaste(array) typeof(array[0])##_string
  </code></pre>
  
  <p>but it expands to <code>)_string</code>.</p>
  
  <p>Even using multiple levels of indirection for the <code>##</code> operand the macro doesn't expand correctly.</p>