Heim > Backend-Entwicklung > C++ > Kann ich immer davon ausgehen, dass „(bool)true' in C äquivalent zu „(int)1' ist?

Kann ich immer davon ausgehen, dass „(bool)true' in C äquivalent zu „(int)1' ist?

Patricia Arquette
Freigeben: 2024-11-28 18:44:11
Original
982 Leute haben es durchsucht

Can I Always Assume `(bool)true` is Equivalent to `(int)1` in C  ?

Kann ich über Compiler hinweg eine Gleichwertigkeit zwischen (bool)true und (int)1 annehmen?

Die vorliegende Frage dreht sich darum, ob die Gleichheit besteht (bool)true == (int)1 gilt allgemein für C-Compiler. Mit anderen Worten, kann man mit Sicherheit von der Austauschbarkeit dieser beiden Ausdrücke ausgehen?

Laut der gegebenen Antwort lautet die Antwort ein klares „Ja“. Die Abgüsse selbst sind aufgrund der ganzheitlichen Förderung überflüssig. Die Integral-Hochstufung schreibt vor, dass Bool-Werte automatisch zu int hochgestuft werden, wobei „true“ speziell auf den ganzzahligen Wert 1 heraufgestuft wird.

Dieses Verhalten wird im Abschnitt 4.7 [conv.integral] / 4 des C-Standards ausführlich beschrieben, in dem es ausdrücklich heißt dass „Wenn der Quelltyp bool ist... true in eins konvertiert wird.“

Daher ist der Ausdruck true == 1 im Wesentlichen äquivalent zu 1 == 1, die unabhängig vom verwendeten Compiler als wahr ausgewertet wird.

Das obige ist der detaillierte Inhalt vonKann ich immer davon ausgehen, dass „(bool)true' in C äquivalent zu „(int)1' ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage