Почему SCHAR_MIN определен как -127 в C99?

§5.2.4.2.1 из C99 определяет SCHAR_MIN как -127 и SCHAR_MAX как 127. Разве диапазон для 8-битного целого числа со знаком не должен быть от -128 до +127?

limits.h для моего компилятора определяет SCHAR_MIN как (- 1 << ((CHAR_BIT) -1)) , что равно -128, если CHAR_BIT равен 8.

Есть ли причина, по которой SCHAR_MIN был определен -127, а не -128?

7
задан paxdiablo 3 August 2015 в 02:57
поделиться