saturnと呼ばれる非常に特殊な(そして最近では役に立たない)プロセッサを検討しています。
この CPU の奇妙な特徴の 1 つは、その要素単位がバイト (8 ビット) ではなく、ニブル (4 ビット) であることです。見た目だけではなく、ポインター値はニブルで表現されます。
Saturn 用の C コンパイラを作成する試みが 1 回ありました: hp48xgcc
そのドキュメントを見て、その基本的な型が char 8 ビットの通常の GCC 規則に従っていることに気付きました。この時点で、要素単位のサイズを提供することが CHAR_BIT の意図ではないのだろうかと疑問に思いました。これは、 GCC 独自のドキュメントで示唆されているようです。
You can compute the number of bits in any data type like this:
sizeof (type) * CHAR_BIT
この場合、Saturn アーキテクチャを考慮すると、CHAR_BIT = 4 にする方がよいでしょう。
または、 CHAR_BIT の意味を誤解していますか?