Programmiersprache C/C++

Präprozessor

Direktive #undef

  #undef makro_name
Mit der Direktive #undef kann ein Makro außer Kraft gesetzt werden. Die Makrodefinition wird praktisch "vergessen" und der Makroname ist dann undefiniert.
Innerhalb einer #undef-Zeile findet keine Makroerweiterung statt.

Der Status "definiert" bzw. "undefiniert" stellt eine wichtige Eigenschaft eines Bezeichners dar, unabhängig von seiner tatsächlichen Definition.
Die Direktiven #ifdef und #ifndef werden benutzt, um zu prüfen, ob ein Bezeichner momentan definiert ist oder nicht.

Nachdem die Definition eines Makronamens aufgehoben worden ist, kann er mit #define neu definiert werden.

Beispiel:

  #include <stdio.h>

  int main(void)
  {
    #define N 1
      printf("%d\n", N);

    #undef N

    #define N 2
      printf("%d\n", N);

    return 0;
  }
Der Versuch, einen bereits definierten Makronamen erneut zu definieren, führt zu einer Warnung, falls die neue Definition nicht exakt der existierenden entspricht.
Nach Ausführung von #undef ist jedoch eine beliebige Neudefinition möglich.


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

P. Böhme, 23.03.1996