Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Direktivy preprocesoru #ifdef #ifndef mají stejný účinek jako direktiva #if při použití s operátorem defined .
Syntaxe
#ifdefidentifier
#ifndefidentifier
Tyto direktivy jsou ekvivalentní:
#if definedidentifier
#if !definedidentifier
Poznámky
Direktivy #ifdef a #ifndef direktivy můžete použít kdekoli #if . Příkaz #ifdef identifier je ekvivalentní #if 1 tomu, kdy identifier byl definován. Je ekvivalentní #if 0 tomu, kdy identifier nebyla definována nebo nebyla definována direktivou #undef . Tyto direktivy kontrolují pouze přítomnost nebo nepřítomnost identifikátorů definovaných pomocí #define, ne pro identifikátory deklarované ve zdrojovém kódu jazyka C nebo C++.
Tyto direktivy jsou poskytovány pouze z důvodu kompatibility s předchozími verzemi jazyka. Preferuje se defined( identifier ) konstantní výraz použitý se direktivou.#if
Direktiva #ifndef kontroluje opak podmínky, kterou #ifdefkontroluje . Pokud identifikátor nebyl definován nebo pokud byla jeho definice odebrána #undef, podmínka je true (nenulová). V opačném případě je podmínka false (0).
Specifické pro Microsoft
Identifikátor lze předat z příkazového /D řádku pomocí této možnosti. Lze zadat až 30 maker pomocí /D.
Direktiva #ifdef je užitečná pro kontrolu, jestli definice existuje, protože definici lze předat z příkazového řádku. Příklad:
// ifdef_ifndef.CPP
// compile with: /Dtest /c
#ifndef test
#define final
#endif
END Microsoft Specific