2015-08-19 19 views
14

C Norma ISO wymaga CHAR_BIT być co najmniej 8.Czy CHAR_BIT kiedykolwiek> 8?

Z POSIX nakazujące CHAR_BIT być równa 8, i (prawie?) Wszystkich standardów sieciowych i komunikacyjnych za pomocą oktety, jest tam dowolny współczesna realizacja 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, systemy myślowe z implementacją C99 lub późniejszą.

+5

Podobne do http://stackoverflow.com/questions/2098149/what-platforms-have-something-other-than-8-bit-char –

+3

IIRC są układy DSP z 16-bitowymi znakami. – wildplasser

+0

Szerokie znaki, używane w kilku alfabetach językowych, zazwyczaj mają 16 bitów. – user3629249

Odpowiedz

13

TMS320C28x DSP z Texas Instruments ma bajt z 16 bitami.

Documentation do kompilatora określa CHAR_BIT jako 16 na stronie 101.

Wydaje się, że nowoczesny procesor (obecnie sprzedawane) kompilatory nośne C99 i C++ 03.

+0

Dwie znakomite odpowiedzi utrudniające wybranie zwycięzcy nagrody. Więc rzuciłem kostką ... jeden z was otrzymuje wynik "akceptacji", drugi nagrodę. – Jens

1

Urządzenie DSAR firmy Analog Devices zostało już wymienione (CHAR_BIT == 32). Dodam, że niedawne Sharc + rdzeni (używam ADSP-SC589 i CCE toolchain) można 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.

Powiązane problemy