Здравствуйте, nen777w, Вы писали:
N>Почему с точки зрения компилятора это 3 разных типа?
Наследие С. Общего у этих типов -- одинаковое число бит и способ их (бит) хранения в памяти, что позволяет их всех троих reinterpret_cast'ить друг к другу.
Отличие в целях.
char -- буквы
signed char -- маленькие целые со знаком
unsigned char -- маленькие натуральные с нулём.
Смысл в том, что возможны и даже были реализации, где char был МЕНЬШЕ минимального адресуемого аппаратурой слова. Например 48-битная машина, ориентированная на выч.маты
И если мы работаем с байтами, как с буквами, то много чего можно соптимизировать...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском