В C char
(включая signed char
и unsigned char
) используется для хранения байта , который стандарт C определяет как небольшое целое число размером не менее 8 бит.
Наличие байтов со знаком и без знака так же полезно, как и увеличение целых чисел. Если вы храните в массиве очень большое количество маленьких чисел (0..255 для неподписанных, -127..127 для подписанных [1]), вы можете использовать байты для них, а не, скажем, короткие целые числа , для экономии места.
Исторически, байт и текстовый символ были почти одним и тем же. Тогда кто-то понял, что языков больше, чем английский. В наши дни текст намного сложнее, но уже слишком поздно менять имя типа char
в C.
[1] -128..127 для машин с двоичным представлением дополнения для отрицательных чисел, но стандарт C не гарантирует этого.