#ifdef und #ifndef
Nach oben zu Bedingte Compilierung (Übersicht) - Index
Syntax
#ifdef bezeichner #ifndef bezeichner
Beschreibung
Die Direktiven #ifdef und #ifndef entsprechen der Direktive #if mit dem Operator defined (bezeichner):
#if defined bezeichner #if !defined bezeichner
Sie können die Direktiven #ifdef und #ifndef anstelle des Ausdrucks #if defined bezeichner
verwenden. Der Ausdruck #if defined bezeichner
wird aber vorgezogen. Die Direktiven #ifdef und #ifndef werden nur aus Gründen der Kompatibilität mit früheren Sprachversionen bereitgestellt.
Mit den Bedingungsdirektiven #ifdef und #ifndef können Sie prüfen, ob ein Bezeichner momentan definiert ist oder nicht, ob also eine #define-Direktive für diesen Bezeichner vorausging und noch wirksam ist. Die Zeile
#ifdef bezeichner
hat exakt denselben Effekt wie
#if 1
wenn bezeichner
momentan definiert ist, und denselben Effekt wie
#if 0
wenn bezeichner
aktuell nicht definiert ist.
#ifndef ergibt "true" für den "nicht-definierten" bezeichner
, weshalb die Zeile
#ifndef bezeichner
exakt denselben Effekt hat wie
#if 0
wenn bezeichner
momentan definiert ist, und denselben Effekt wie
#if 1
wenn bezeichner
aktuell nicht definiert ist.
Die Syntax entspricht demnach der der Direktiven #if, #elif, #else und #endif.
Ein Bezeichner, der als NULL definiert wurde, gilt als definiert.