Heim  >  Artikel  >  Backend-Entwicklung  >  Wird eine Bool-Variable garantiert in 0 oder 1 konvertiert, wenn sie in eine Ganzzahl umgewandelt wird?

Wird eine Bool-Variable garantiert in 0 oder 1 konvertiert, wenn sie in eine Ganzzahl umgewandelt wird?

Linda Hamilton
Linda HamiltonOriginal
2024-11-12 14:46:02488Durchsuche

Is a bool variable guaranteed to convert to 0 or 1 when cast to an integer?

Garantierte Werte von Bool bei der Konvertierung in Int

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 wird

Das 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn