CHAR_BIT est-il déjà> 8?

La norme ISO C exige que CHAR_BIT soit au moins égal à 8.

POSIX CHAR_BIT à CHAR_BIT une valeur égale à 8 et (presque?) À toutes les normes de réseau et de communication utilisant des octets , existe-t-il une implémentation en C contemporaine dans laquelle CHAR_BIT > 8?

(Remarque: les architectures informatiques historiques utilisant des mots de 18 ou 36 bits ne m’intéressent pas. C’est vraiment une question de C telle qu’elle est utilisée aujourd’hui sur le matériel actuel; pensez aux systèmes avec une implémentation C99 ou ultérieure).

Le DSP TMS320C28x de Texas Instruments a un octet de 16 bits.

La documentation du compilateur spécifie CHAR_BIT à 16 à la page 101.

Cela semble être un processeur moderne (actuellement en vente), des compilateurs supportant C99 et C ++ 03.

Un autre exemple est la famille de processeurs SHARC d’ Analog Devices. Son implémentation en C, CrossCore Embedded Studio , a CHAR_BIT == 32 et prétend fournir une conformité autonome pour C99 et C ++ 11.

Le DSP SHARC d’Analog Devices a déjà été mentionné (CHAR_BIT == 32). Permettez-moi d’append que les cœurs SHARC + récents (j’utilise ADSP-SC589 et la chaîne d’outils CCES) peuvent exécuter des applications écrites selon deux modes: CHAR_BIT == 8 ou CHAR_BIT == 32 . Vous pouvez même mélanger et combiner les deux modes dans une seule application. Bien que je ne le recommande pas pour le développement en général, je le trouve utile lors du portage du code.