uint8t

¿Cuándo es uint8 t ≠ unsigned char?

Según C y C++, CHAR_BIT >= 8. Pero cuando CHAR_BIT > 8, uint8_t ni siquiera se puede representar como 8 bits. Debe ser ... 8_t como un tipo distinto de unsigned char? (Si la respuesta es diferente para C y C++ entonces me gustaría saber ambos.)