В соответствии с C и С++, CHAR_BIT >= 8. 
Но всякий раз, когда CHAR_BIT > 8, uint8_t не может быть даже представлен как 8 бит. 
Он должен быть больше, потому что CHAR_BIT - минимальное количество бит для любого типа данных в системе.
В какой системе можно < <22 > быть юридически определенным как тип, отличный от unsigned char?
(Если ответ отличается для C и С++, тогда я хотел бы знать оба.)
