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.
The #ifdef and #ifndef directives perform the same task as the #if directive when it is used with defined( identifier ).
Syntax
#ifdef identifier
#ifndef identifier
is equivalent to
#ifdefined identifier
#if!defined identifier
You can use the #ifdef and #ifndef directives anywhere #if can be used. The #ifdefidentifier statement is equivalent to#if 1when identifier has been defined, and it is equivalent to#if 0when identifier has not been defined or has been undefined with the #undef directive. These directives check only for the presence or absence of identifiers defined with #define, not for identifiers declared in the C or C++ source code.
These directives are provided only for compatibility with previous versions of the language. The defined(identifier) constant expression used with the #if directive is preferred.
The #ifndef directive checks for the opposite of the condition checked by #ifdef. If the identifier has not been defined (or its definition has been removed with #undef), the condition is true (nonzero). Otherwise, the condition is false (0).
Microsoft Specific
The identifier can be passed from the command line using the /D option. Up to 30 macros can be specified with /D.
This is useful for checking whether a definition exists, because a definition can be passed from the command line. For example:
// PROG.CPP
#ifndef test // These three statements go in your source code.
#define final
#endif
CL /Dtest prog.cpp // This is the command for compilation.
END Microsoft Specific