Programmiersprache C/C++

Präprozessor

defined

  #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.
Wenn symbol zuvor definiert und diese Definition nicht mit Hilfe von #undef wieder gelöscht wurde, so liefert defined den Wert 1 (Wahr), andernfalls 0 (Falsch).

Die beiden folgenden Anweisungen erzielen die gleiche Wirkung:

  #if defined(symbol)
  #ifdef symbol
Der Vorteil von defined liegt darin, daß dieses Schlüsselwort innerhalb eines komplexen Ausdrucks hinter der Direktive #if mehrfach einsetzt werden kann.
Beispiel:
  #if defined(unix) && !defined(AIX)
Anwendung findet defined zum Beispiel, um das mehrfache Einfügen von Header-Dateien zu verhindern.
Beispiel:
  #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

Zurück zum Menü
Zurück zur vorigen Seite Weiter zur nächsten Seite

P. Böhme, 03.02.1996