Hat Long garantiert 32 Bits?
Trotz allgemeiner Annahmen basierend auf dem C-Standard stellt sich die Frage, ob Long garantiert 32 Bits hat mindestens 32 Bit. Der Standard klassifiziert die grundlegenden Integraltypen als:
sizeof(char) ≤ sizeof(short int) ≤ sizeof(int) ≤ sizeof(long int)
Viele gehen jedoch davon aus, dass dies der Fall ist Hierarchie, long muss 32 Bit haben. Der Standard besagt jedoch ausdrücklich, dass die Anzahl der Bits in einem Byte durch die Implementierung definiert ist.
Alf P. Steinbachs Behauptung
Trotz dieses scheinbaren Widerspruchs behauptet Alf P. Steinbach behauptete, dass long garantiert 32 Bit beträgt. Er stützte diese Behauptung auf die implizite Grenze des Wertebereichs, den ein Long-Wert enthalten kann (LONG_MIN bis LONG_MAX).
Der C-Standard verweist auf den C-Standard (18.3.2), der Folgendes definiert:
LONG_MIN ≤ -2^31 1 LONG_MAX ≥ 2^31 - 1
Verbindung zur 32-Bit-Darstellung
Dies legt zwar einen Bereich für long fest, garantiert jedoch nicht explizit 32 Bits. Es gibt jedoch zwei Möglichkeiten:
Fazit
Obwohl der C-Standard nicht explizit verlangt, dass long 32 Bits hat, ist dies aufgrund der Mindestbereichsanforderung (LONG_MIN bis LONG_MAX) implizit erforderlich. Dies liegt daran, dass die Darstellung dieser Werte entweder 32 Bit Speicher oder einen implementierten spezifischen Mechanismus mit gleichwertiger Wertekapazität erfordert. Daraus kann geschlossen werden, dass C garantiert, dass long mindestens 32 Bits hat.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3