title: Casting enum definition to unsigned int
body: <p>According to this SO post:<br>
  <a href="https://stackoverflow.com/questions/366017/what-is-the-size-of-an-enum-in-c">What is the size of an enum in C?</a><br>
  enum types have <code>signed int</code> type.  </p>
  
  <p>I would like to convert an enum definition from <code>signed int</code> to <code>unsigned int</code>.  </p>
  
  <p>For example, on my platform an <code>unsigned int</code> is 32-bits wide.
  I want to create an enum:</p>
  
  <pre><code>typedef enum hardware_register_e
  {
      REGISTER_STATUS_BIT = (1U &lt;&lt; 31U)
  } My_Register_Bits_t;
  </code></pre>
  
  <p>My compiler is complaining that the above definition is out of range (which it is for a <code>signed int</code>).  </p>
  
  <p>How do I declare <code>unsigned int</code> <code>enum</code> values?  </p>
  
  <h2>Edit 1:</h2>
  
  <ol>
  <li>The preference is not to expand to 64 bits (because the code resides
  in an embedded system).</li>
  <li>Due to skill limitations, C++ is not allowed for this project. :-(  </li>
  </ol>
  
  <h2>Edit 2:</h2>
  
  <ul>
  <li>Compiler is IAR Embedded Workbench for ARM7.</li>
  </ul>