I know that the C++ standard explicitly guarantees the size of only char, signed char and unsigned char. Also it gives guarantees that
char
signed char
unsigned char
Just be careful about the fact that some machines have chars that are more than 8 bits. For example, IIRC on the TI C5x, a long is 32 bits, but sizeof(long)==2 because chars, shorts and ints are all 16 bits with sizeof(char)==1.