title: Why doesn't unsigned typeof(var) work? const typeof(x) works fine, so why not?
body: <p>In a macro I would want to make the value the same width, however unsigned. So, a natural <code>unsigned typeof(x)</code> came to mind. However, it doesn't compile:</p>
  <pre><code>/home/guest/mc.c: In function ‘main’:
  /home/guest/mc.c:14:36: error: expected ‘)’ before ‘typeof’
     14 |                         *((unsigned typeof(minus)*)&amp;minus));
  </code></pre>
  <p>I wonder why it is so? Maybe I'm doing something wrong? Can I somehow add <code>unsigned</code> to the type of a variable?</p>
  <p>PS. I've noted, that similar cast adding <code>const</code> works OK:</p>
  <pre><code>#define add_const(x) ((const typeof(x))(x))
  </code></pre>
  <p>Also, adding <code>*</code> to create a pointer type also works OK.</p>