#ifdef a #ifndef – direktivy (C/C++)
Direktivy #ifdef a #ifndef při použití společně s parametrem defined( identifikátor) provádějí stejné úkoly, jako direktiva #if.
#ifdef identifier
#ifndef identifier
// equivalent to
#if defined identifier
#if !defined identifier
Poznámky
Můžete použít směrnice #ifdef a #ifndef kdekoliv, kde lze #if použít.Příkaz identifikátoru**#Ifdef** je ekvivalentní příkazu #if 1 , je-li definován identifikátor, a je ekvivalentní příkazu #if 0 , nebyl-li identifikátor definován, nebo byla jeho definice zrušena pomocí direktivy #undef.Tyto směrnice zkontrolují pouze přítomnost nebo nepřítomnost identifikátorů definovaných pomocí #define, nikoli identifikátorů, které jsou deklarovány ve zdrojovém kódu C nebo C++.
Tyto směrnice jsou poskytovány pouze pro kompatibilitu s předchozími verzemi jazyka.Upřednostňován je konstantní výraz defined( identifikátor ) použitý spolu s direktivou #if.
Direktiva #Ifndef hledá opak podmínky ověřované direktivou #ifdef.Pokud nebyl zadán identifikátor (nebo byla odebrána jeho definice pomocí #undef), podmínka je PRAVDA (nenulové).V opačném případě je podmínka nepravda (0).
Specifické pro Microsoft
Identifikátor lze předávat z příkazového řádku pomocí možnosti /D.Parametrem /D můžete zadat až 30 maker.
To je užitečné pro kontrolu, zda existuje definice, protože definice může být předána z příkazového řádku.Příklad:
// ifdef_ifndef.CPP
// compile with: /Dtest /c
#ifndef test
#define final
#endif
Specificka produktu Microsoft END