Wow true!
And in addition:
All the signed values now have 1 value less for their most negative range!!
signed char: -127 to +127
signed short: -32767 to 32767
etc.
These are the minimum ranges, however the standard (see link below) says that
implementations can have larger absolute ranges:
Quote: "Their implementation-defined values shall be equal or greater in magnitude
(absolute value) to those shown, with the same sign."
(page-21 = pdf-page-33)
See it from the 2005 draft C99 Standard here:
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf#page=34(page-22 = pdf-page-34)
Hmmm... I'll be searching for a rationale for this, 'cause I think this is very strange. In
fact this means, that to guarantee that C99 code is portable, one has to assume that the minimum value is odd not even (e.g. -127 for char). Obviously there will hardly ever be a compiler that does not support a "standard 2's complement min char value" of -128.
Coding for e.g. the min. signed char of -127 will lead to unnecessary complications, as is shown in the "ultimate C99 standard-'decryption' book": "The New C Standard: A Cultural and Economic Commentary" by Derek M. Jones by (sentance-305 = pdf-page-359,360)
http://www.coding-guidelines.com/cbook/cbook1_0b.pdf#page=359&zoom=100,0,780see also
http://www.coding-guidelines.com/cbook/cbook1_0b.pdf#page=357&zoom=100,0,195(
http://www.knosof.co.uk/cbook/cbook.html)
Kind regards,
Albert