CおよびC ++標準では、言語の実装の多くの側面が定義されたままであることを知っています。それは、他の特性を持つアーキテクチャがある場合、その標準に準拠するコンパイラを作成することが非常に困難または不可能だからです。
40年前は、どのコンピュータにも独自の仕様があったことを知っています。ただし、今日使用されているアーキテクチャについては知りません。
CHAR_BIT != 8
signed
は2の補数ではありません(Javaでこれに問題があったと聞きました)。- 浮動小数点はIEEE 754に準拠していません(編集:「IEEE 754バイナリエンコーディングではない」という意味です)。
私が尋ねている理由は、C ++が固定サイズの型などの他の低レベルの側面を義務付けないのは良いことだと人々によく説明するためです†。「他の言語」とは異なり、正しく使用するとコードが移植可能になるので良いです(編集:符号+大きさのアーキテクチャでの2の補数演算など、マシンの低レベルの側面のエミュレーションを必要とせずに、より多くのアーキテクチャに移植できるため) 。しかし、私は自分が特定のアーキテクチャを指すことができないのは残念です。
だから問題は:どのアーキテクチャが上記の特性を示すのか?
† uint*_t
はオプションです。