Firstly, the number of bits in char
does not formally depend on the "system" or on "machine", even though this dependency is usually implied by common sense. The number of bits in char
depends only on the implementation (i.e. on the compiler). There's no problem implementing a compiler that will have more than 8 bits in char
for any "ordinary" system or machine.
Secondly, there are several embedded platforms where sizeof(char) == sizeof(short) == sizeof(int)
, each having 16 bits (I don't remember the exact names of these platforms). Also, the well-known Cray machines had similar properties with all these types having 32 bits in them.