#ifdef und #ifndef

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

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.

Siehe auch