Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die #ifdef
Direktiven und #ifndef
Präprozessoren haben die gleiche Wirkung wie die #if
Direktive, wenn sie mit dem defined
Operator verwendet wird.
Syntax
#ifdef
identifier
#ifndef
identifier
Diese Direktiven entsprechen folgendem:
#if defined
identifier
#if !defined
identifier
Hinweise
Sie können die #ifdef
Direktiven #ifndef
überall #if
verwenden. Die #ifdef
identifier
Anweisung entspricht dem Zeitpunkt, an #if 1
dem identifier
sie definiert wurde. Es entspricht #if 0
dem, wann identifier
er nicht definiert wurde oder von der #undef
Direktive nicht definiert wurde. Diese Anweisungen überprüfen lediglich, ob die mit #define
definierten Bezeichner vorhanden sind, und nicht, ob Bezeichner vorhanden sind, die im C- oder C++-Quellcode deklariert werden.
Diese Anweisungen werden nur bereitgestellt, um die Kompatibilität mit früheren Versionen der Sprache zu gewährleisten. Der defined(
identifier
)
konstante Ausdruck, der mit der #if
Direktive verwendet wird, wird bevorzugt.
Die #ifndef
Richtlinie prüft auf das Gegenteil der von #ifdef
. Wenn der Bezeichner nicht definiert wurde oder seine Definition mit #undef
entfernt wurde, ist die Bedingung wahr (nonzero). Andernfalls ist die Bedingung "false" (0).
Microsoft-spezifisch
Der Bezeichner kann über die Befehlszeile mithilfe der /D
Option übergeben werden. Bis zu 30 Makros können mit /D
.
Die #ifdef
Direktive ist nützlich, um zu überprüfen, ob eine Definition vorhanden ist, da eine Definition über die Befehlszeile übergeben werden kann. Zum Beispiel:
// ifdef_ifndef.CPP
// compile with: /Dtest /c
#ifndef test
#define final
#endif
Ende Microsoft-spezifisch