Время от времени кто-то из SO указывает, что char
(aka 'byte') не обязательно 8 бит.
Кажется, что 8-бит char
является почти универсальным. Я бы подумал, что для основных платформ необходимо иметь 8-разрядный char
, чтобы обеспечить его жизнеспособность на рынке.
Как сейчас, так и исторически, какие платформы используют char
, который не является 8 битами, и почему они отличаются от "обычных" 8 бит?
При написании кода и понимании кросс-платформенной поддержки (например, для общедоступных библиотек), какое внимание следует уделить платформам с не-8-разрядными char
?
В прошлом я сталкивался с некоторыми процессорами Analog Devices DSP, для которых char
- 16 бит. Я полагаю, что DSP - это немного нишевая архитектура. (Опять же, в то время, когда ручной ассемблер легко бил то, что могли сделать доступные компиляторы C, поэтому на этой платформе я действительно не получал много опыта.)