#ifdef dyrektywy i #ifndef (C/C++)

#ifdef Dyrektywy preprocesora i #ifndef mają taki sam efekt jak #if dyrektywa, gdy jest używana z operatoremdefined.

Składnia

#ifdef identifier
#ifndef identifier

Te dyrektywy są równoważne:

#if defined identifier
#if !defined identifier

Uwagi

Można użyć #ifdef dyrektyw i #ifndef w dowolnym miejscu #if . Instrukcja jest równoważna #ifdefidentifier#if 1 , gdy identifier została zdefiniowana. Jest ona równoważna #if 0 , gdy identifier nie została zdefiniowana lub nie została zdefiniowana przez dyrektywę #undef . Dyrektywy te sprawdzają tylko obecność lub brak identyfikatorów zdefiniowanych za pomocą #definemetody , a nie dla identyfikatorów zadeklarowanych w kodzie źródłowym języka C lub C++.

Te dyrektywy są udostępniane tylko pod kątem zgodności z poprzednimi wersjami języka. Preferowane defined(identifier) jest wyrażenie stałe używane z dyrektywą.#if

Dyrektywa #ifndef sprawdza przeciwieństwo warunku sprawdzanego przez #ifdefelement . Jeśli identyfikator nie został zdefiniowany lub jeśli jego definicja została usunięta z parametrem #undef, warunek ma wartość true (nonzero). W przeciwnym razie warunek ma wartość false (0).

Specyficzne dla firmy Microsoft

Identyfikator można przekazać z wiersza polecenia przy użyciu /D opcji . Można określić maksymalnie 30 makr za pomocą polecenia /D.

Dyrektywa jest przydatna #ifdef do sprawdzania, czy definicja istnieje, ponieważ definicję można przekazać z wiersza polecenia. Przykład:

// ifdef_ifndef.CPP
// compile with: /Dtest /c
#ifndef test
#define final
#endif

END Microsoft Specific

Zobacz też

Dyrektywy preprocesora