Sdílet prostřednictvím


#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

Viz také

Referenční dokumentace

Preprocesor – direktivy