Kann ein Boolescher Wert immer Null oder Eins werden, wenn er in eine Ganzzahl konvertiert wird?
Bei der Konvertierung eines Booleschen Werts in eine Ganzzahl scheinen viele Compiler dies zu tun Behalten Sie nur 0 oder 1 bei, was Fragen zur Zuverlässigkeit dieses Verhaltens aufwirft. Schauen wir uns ein Beispiel an:
int a = 2; bool b = a; int c = 3 b; // What is the result? 4 or 5?
Antwort: Ja, bool ist garantiert 0 oder 1, wenn es in eine Ganzzahl konvertiert wird.
In C:
Der C-Standard (§4.5/4) besagt ausdrücklich: „Ein R-Wert vom Typ bool kann in einen R-Wert vom Typ int konvertiert werden, wobei false zu Null und True zu Eins wird.“
In C:
Wenn ein Wert in _Bool konvertiert wird, wird er zu 0 oder 1 (§6.3.1.2/1): „Wenn ein Skalarwert in _Bool konvertiert wird, ist das Ergebnis 0 Wenn der Wert gleich 0 ist, ist das Ergebnis andernfalls 1 ).
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