title: How to define a define in C?
body: <p>Is it possible to write a <code>#define</code> that defines a <code>#define</code>?</p>
  
  <p>For example:</p>
  
  <pre><code>#define FID_STRS(x) #x
  #define FID_STRE(x) FID_STRS(x)
  #define FID_DECL(n, v) static int FIDN_##n = v;static const char *FIDS_##n = FID_STRE(v)
  </code></pre>
  
  <p>But instead:</p>
  
  <pre><code>#define FID_DECL2(n, v) #define FIDN_##n v \
                                 FIDS_##n FID_STRE(v)
  </code></pre>
  
  <p><code>FID_DECL</code> works fine but creates two static variables. Is it possible to make <code>FID_DECL2</code> work and having define two defines?</p>