Pytanie Czy CHAR_BIT jest kiedykolwiek> 8?


Wymagany standard ISO C CHAR_BIT mieć co najmniej 8.

Z mandatem POSIX CHAR_BIT być równe 8 i (prawie?) wszystkim używanym standardom sieciowym i komunikacyjnym oktety, jest tu każdy współczesna implementacja C gdzie CHAR_BIT > 8?

(Uwaga: nie interesują mnie historyczne architektury komputerów używające 18- lub 36-bitowych słów.) To naprawdę pytanie o C, ponieważ jest ono używane dzisiaj na obecnym sprzęcie, myślę o systemach z implementacją C99 lub późniejszą.


14
2017-08-19 09:46


pochodzenie


Związany z stackoverflow.com/questions/2098149/... - Klas Lindbäck
IIRC są układy DSP z 16-bitowymi znakami. - wildplasser
Tak. Maszyny Old Cray miały odpowiednik CHAR_BIT == 32 (więc sizeof(int) == 1 == sizeof(short) == sizeof(char). Współczesne systemy DSP mogą mieć CHAR_BIT == 16. - Jonathan Leffler
Kompilator TI dla TMS320C54x (powszechnie znany jako C54x) definiuje CHAR_BIT jak 16. Patrz Tabela 7.1 w Podręczniku użytkownika: ti.com.cn/cn/lit/ug/spru103g/spru103g.pdf - Michael Burr
Ciekawe, czy istnieją implementacje inne niż DSP CHAR_BIT > 8. - a3f


Odpowiedzi:


TMS320C28x DSP z Texas Instruments ma bajt z 16 bitami.

Dokumentacja dla kompilatora określa CHAR_BIT jako 16 na stronie 101.

Wydaje się, że jest to nowoczesny procesor (obecnie sprzedawany), kompilatory obsługujące C99 i C ++ 03.


13
2017-07-13 07:29



Dwie znakomite odpowiedzi, które utrudniają wybór zwycięzcy nagrody. Więc rzuciłem kostką ... jeden z was otrzymuje wynik "akceptacji", drugi nagrodę. - Jens


Innym przykładem są urządzenia Analog Devices Rodzina procesorów SHARC. Implementacja C, CrossCore Embedded Studio, ma CHAR_BIT == 32 i roszczenia w celu zapewnienia niezależnej zgodności C99 i C ++ 11.


9
2017-07-13 19:35





Wcześniej wspomniano o SHARC DSP firmy Analog Devices (CHAR_BIT == 32). Pozwolę sobie dodać to ostatnie SHARC + rdzenie (używam ADSP-SC589 i toolchain CCES) mogą uruchamiać aplikacje napisane w dwóch trybach: CHAR_BIT == 8 lub CHAR_BIT == 32. Możesz nawet mix'n'match oba tryby razem w jednej aplikacji. Chociaż nie poleciłbym tego ogólnie do rozwoju, uważam, że jest to przydatne przy przenoszeniu kodu.


1
2018-04-22 17:39