Heim > Backend-Entwicklung > C++ > Hauptteil

Undefinierte Konstanten im Präprozessor #if-Bedingungen: Definierte oder undefinierte Ergebnisse?

Linda Hamilton
Freigeben: 2024-11-10 13:25:02
Original
437 Leute haben es durchsucht

Undefined Constants in Preprocessor #if Conditions: Defined or Undefined Results?

Undefinierte Konstanten im Präprozessor #if-Bedingungen: Definierte oder undefinierte Ergebnisse?

Frage:

In C/C , Was ist der angenommene Wert für undefinierte Konstanten, wenn sie in #if-Bedingungen des Präprozessors verwendet werden? Kann man sich auf diese Annahme verlassen oder könnten undefinierte Konstanten zu unvorhersehbarem Verhalten führen?

Antwort:

Gemäß dem C99-Standard wird tatsächlich davon ausgegangen, dass undefinierte Konstanten einen Wert haben von 0 für die Auswertung von #if-Bedingungen. Dies wird ausdrücklich in §6.10.1 ¶3 angegeben:

„Nachdem alle Ersetzungen aufgrund der Makroerweiterung und des definierten unären Operators durchgeführt wurden, werden alle verbleibenden Bezeichner durch die PP-Nummer 0 ersetzt.“

Ähnlich heißt es im C-Standard (§16.1 ¶4):

„Nach allen Ersetzungen aufgrund der Makroerweiterung und der definierten Unärzahl.“ Wenn der Operator ausgeführt wurde, werden alle verbleibenden Bezeichner und Schlüsselwörter, außer true und false, durch die pp-Nummer 0 ersetzt. wenn Bedingungen.

Das obige ist der detaillierte Inhalt vonUndefinierte Konstanten im Präprozessor #if-Bedingungen: Definierte oder undefinierte Ergebnisse?. 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