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

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

Barbara Streisand
Barbara StreisandOriginal
2024-11-12 17:03:02631Durchsuche

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!

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