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
#ifdefidentifier
#ifndefidentifier
Diese Direktiven entsprechen folgendem:
#if definedidentifier
#if !definedidentifier
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 #undefentfernt 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