Freigeben über


#undef-Anweisung

Präprozessordirektive, die die aktuelle Definition einer Konstante oder eines Makros entfernt, die zuvor mithilfe der #define-Direktive definiert wurde.

#undef Bezeichner

Parameter

Element Beschreibung
Bezeichner
Bezeichner der Konstante oder des Makros, für die die Definition entfernt werden soll. Wenn Sie ein Makro nicht definieren, geben Sie nur den Bezeichner und nicht die Parameterliste an.

Bemerkungen

Sie können die #undef-Direktive auf einen Bezeichner anwenden, der über keine vorherige Definition verfügt. Dadurch wird sichergestellt, dass der Bezeichner nicht definiert ist. Makroersetzungen werden nicht innerhalb #undef-Anweisungen ausgeführt.

Die #undef-Direktive wird in der Regel mit einer #define-Direktive gekoppelt, um eine Region in einem Quellprogramm zu erstellen, in der 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 bedingte Kompilierung des Quellprogramms zu steuern.

Konstanten und Makros können über die Befehlszeile mithilfe der Option /U, gefolgt von den zu undefinierten Bezeichnern, nicht definiert werden. Dies entspricht dem Hinzufügen einer Sequenz von #undef-Anweisungen am Anfang der Quelldatei.

Beispiele

Das folgende Beispiel zeigt, wie Sie mithilfe der #undef-Direktive Definitionen einer symbolischen Konstanten und eines Makros entfernen.

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

#undef WIDTH
#undef ADD

Siehe auch

Präprozessordirektiven (DirectX HLSL)

#define-Direktive (DirectX HLSL)

#if, )