title: When is uint8_t ≠ unsigned char?
body: <p>According to C and C++, <code>CHAR_BIT &gt;= 8</code>.<br>
  But whenever <code>CHAR_BIT &gt; 8</code>, <code>uint8_t</code> can't even be represented as 8 bits.<br>
  It must be larger, because <code>CHAR_BIT</code> is the minimum number of bits for any data type on the system.</p>
  
  <p>On what kind of a system can <code>uint8_t</code> be legally defined to be a type other than <code>unsigned char</code>?  </p>
  
  <p>(If the answer is different for C and C++ then I'd like to know both.)</p>