Freigeben über


#undef-Anweisung (C/C++)

Entfernt einen Namen, der zuvor mit #define erstellt wurde (hebt die Definierung auf).

Syntax

#undef-ID

Hinweise

Die #undef-Direktive entfernt die aktuelle Definition des Bezeichners. Folglich werden nachfolgende Vorkommen des Bezeichners vom Präprozessor ignoriert. Wenn Sie eine Makrodefinition mithilfe von #undef entfernen möchten, geben Sie nur den Makrobezeichner und keine Parameterliste an.

Sie können die #undef-Direktive auch auf einen Bezeichner anwenden, der keine vorherige Definition aufweist. Dadurch wird sichergestellt, dass der Bezeichner nicht definiert wird. Die Makroersetzung wird in #undef Anweisungen nicht ausgeführt.

Die #undef-Direktive wird in der Regel mit einer #define Direktive kombiniert, um eine Region in einem Quellprogramm zu erstellen, in dem ein Bezeichner eine besondere Bedeutung hat. Beispielsweise kann eine bestimmte Funktion des Quellprogramms Manifestkonstanten verwenden, um umgebungsspezifische Werte zu definieren, die sich nicht auf das übrige Programm auswirken. Die #undef-Direktive funktioniert auch mit der Direktive, um die #if bedingte Kompilierung des Quellprogramms zu steuern. Weitere Informationen finden Sie in den Direktiven #if, #elif, #else und #endif.

Im folgenden Beispiel entfernt die #undef Direktive Definitionen einer symbolischen Konstante und eines Makros. Beachten Sie, dass nur der Bezeichner des Makros angegeben wird.

#define WIDTH 80
#define ADD( X, Y ) ((X) + (Y))
.
.
.
#undef WIDTH
#undef ADD

Microsoft-spezifisch

Makros können über die Befehlszeile nicht definiert werden, indem sie die /U Option verwenden, gefolgt von den Makronamen, die nicht definiert werden sollen. Die Auswirkung der Ausgabe dieses Befehls entspricht einer Abfolge von #undef Makronamenanweisungen am Anfang der Datei.

Ende Microsoft-spezifisch

Siehe auch

Präprozessoranweisungen