#if defined symbol #if defined ( symbol ) #elif defined symbol #elif defined ( symbol )Der Operator defined wird benutzt, um zu prüfen, ob ein Symbol zuvor mit der Direktive #define definiert worden ist. Der Operator defined darf nur in #if- und #elif- Konstrukten verwendet werden.
Die beiden folgenden Anweisungen erzielen die gleiche Wirkung:
#if defined(symbol) #ifdef symbolDer Vorteil von defined liegt darin, daß dieses Schlüsselwort innerhalb eines komplexen Ausdrucks hinter der Direktive #if mehrfach einsetzt werden kann.
#if defined(unix) && !defined(AIX)Anwendung findet defined zum Beispiel, um das mehrfache Einfügen von Header-Dateien zu verhindern.
#if !defined(NULL)
#include <_null.h>
#endif
Beispiel:
Auszug aus der Header-Datei assert.h von Gnu C für DOS:
#if defined(NDEBUG) #define assert(test) (void)0 #else #define assert(test) ((test)?0:__dj_assert(#test,__FILE__,__LINE__)) #endif