Heim > Backend-Entwicklung > C++ > Ist „(bool)true' in C immer äquivalent zu „(int)1'?

Ist „(bool)true' in C immer äquivalent zu „(int)1'?

Barbara Streisand
Freigeben: 2024-11-28 09:49:11
Original
976 Leute haben es durchsucht

Is `(bool)true` Always Equivalent to `(int)1` in C  ?

Typumwandlung in C-Ausdrücken: (bool)true und (int)1

In C ist es eine gängige Praxis, Typumwandlung zu verwenden, um Daten von einem Typ zu konvertieren zu einem anderen. Diese Frage untersucht, ob wir die Äquivalenz von (bool)true und (int)1 in C-Compilern sicher annehmen können.

Die Äquivalenz

Die Konvertierung von bool nach int wird durch den C-Standard in Abschnitt 4.7 [conv.integral] / 4 definiert. Es besagt, dass, wenn der Quelltyp bool ist, der Wert true in eins konvertiert wird. Das bedeutet, dass im Ausdruck (bool)true == (int)1 der bool-Wert zu einem int hochgestuft wird und einen Wert von 1 hat.

Redundantes Casting

Die Umwandlungen im Ausdruck (bool)true == (int)1 sind technisch redundant. Der bool-Wert wird vom Compiler automatisch zu einem int heraufgestuft und der Vergleich funktioniert wie erwartet ohne die expliziten Umwandlungen.

Compilerkompatibilität

Die Äquivalenz zwischen ( bool)true und (int)1 wird durch den C-Standard garantiert. Daher ist es eine sichere Annahme für jeden C-Compiler, der sich an den Standard hält.

Fazit

In C können wir sicher davon ausgehen, dass (bool)wahr ist == (int)1 für alle C-Compiler, die dem C-Standard folgen. Die Typumwandlungen sind redundant und können weggelassen werden, ohne das Ergebnis des Vergleichs zu beeinflussen.

Das obige ist der detaillierte Inhalt vonIst „(bool)true' in C immer äquivalent zu „(int)1'?. 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