"Clive D.W. Feather" <clive@demon.net> writes:
+ sizeof(short) <= sizeof(int) <= sizeof(long)
This one has gone. This does allow a perverse implementation where long is 32 bits, all used, while short is 64 bits but only 17 of them are used. There are reasons (too off-topic to go into) why we did it this way.
It's not entirely off-topic for tz, as a bit of it (difftime.c) does assume a relationship between sizeof and the range of values that can be stored. I suspect there is a reasonable amount of code that makes the C89 sizeof assumptions, and which will silently go wrong of the assumptions fail to hold. Is there some place that documents why these sizeof assumptions were removed in C99? Are there actual C99 implementations that violate these C89 assumptions?