Heim > Artikel > Backend-Entwicklung > Wird eine Bool-Variable garantiert in 0 oder 1 konvertiert, wenn sie in eine Ganzzahl umgewandelt wird?
Frage:
Ist garantiert, dass der Wert in einem Bool gespeichert ist? Wird die Variable entweder 0 oder 1 sein, wenn sie in eine Ganzzahl (int) konvertiert wird?
Antwort:
Ja, das ist garantiert.
Grund:
Sowohl die Programmiersprachen C als auch C definieren speziell das Verhalten von Bool-Werten, wenn sie in Ganzzahlen konvertiert werden.
In C gilt der C-Standard (§4.5 /4) besagt:
„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 ist der C-Standard ( §6.3.1.2/1) besagt:
„Wenn ein Skalarwert in _Bool konvertiert wird, ist das Ergebnis 0, wenn der Wert gleich 0 ist; andernfalls ist das Ergebnis 1.“
Wenn ein _Bool-Wert in int konvertiert wird, bleibt der Wert derselbe wie er ist, da int sowohl 0 als auch 1 enthalten kann (§6.3.1.3).
Daher können Sie sich darauf verlassen, dass a Die bool-Variable enthält immer entweder 0 oder 1, wenn sie in einen int.
konvertiert wirdDas obige ist der detaillierte Inhalt vonWird eine Bool-Variable garantiert in 0 oder 1 konvertiert, wenn sie in eine Ganzzahl umgewandelt wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!