title: c macro - how to set a macro name as the output of another macro
body: <p>I want to do create a macro whose name is a concatenation of two things i.e.</p>
  
  <pre><code>#define name ## _body(a) \
      a
  </code></pre>
  
  <p>but <code>gcc -E</code> gives the error</p>
  
  <blockquote>
    <p>macros.c:9:18: error: '##' cannot appear at either end of a macro expansion
     #define typename ## _body(body) \</p>
  </blockquote>
  
  <p><strong>QUESTION</strong></p>
  
  <p>Is it possible to do this <em>using only C preprocessor</em>?</p>