Heim > Backend-Entwicklung > C++ > Werden undefinierte Konstanten in #if-Bedingungen als 0 ausgewertet?

Werden undefinierte Konstanten in #if-Bedingungen als 0 ausgewertet?

Barbara Streisand
Freigeben: 2024-11-12 17:03:02
Original
647 Leute haben es durchsucht

Do undefined constants evaluate to 0 in #if conditions?

Undefinierte Konstanten und #if-Bedingungen

Bei der Verwendung des C- oder C-Präprozessors ist es wichtig, das Verhalten undefinierter Konstanten in #if zu verstehen Bedingungen.

Frage:

Kann Muss man sich darauf verlassen, dass undefinierte Konstanten für die Auswertung in #if-Bedingungen den Wert 0 haben?

Antwort:

Ja, für diesen Zweck kann man sich auf undefinierte Konstanten verlassen.

Erklärung:

Laut der C99-Standard (§6.10.1 ¶3) und ähnlich im C-Standard (§16.1 ¶4):

  • Nach Makroerweiterungen und unär definierten Operationen sind alle verbleibenden Bezeichner (einschließlich undefinierter Konstanten) vorhanden durch die pp-Zahl 0 ersetzt.

Daher kann man mit Sicherheit davon ausgehen, dass undefinierte Konstanten in 0 ausgewertet werden #if-Bedingungen, die ein konsistentes Präprozessorverhalten gewährleisten.

Hinweis:

In C haben die Schlüsselwörter true und false während der Vorverarbeitung besondere Bedeutungen und werden nicht durch 0 ersetzt.

Das obige ist der detaillierte Inhalt vonWerden undefinierte Konstanten in #if-Bedingungen als 0 ausgewertet?. 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