Udostępnij za pośrednictwem


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

Dyrektywy #ifdef i #ifndef wykonują takie same zadania jak dyrektywa #if gdy jest stosowana ze definiowanym( identyfikatorem ).

#ifdef identifier
#ifndef identifier

// equivalent to
#if defined identifier
#if !defined identifier

Uwagi

Można używać dyrektyw #ifdef i #ifndef gdziekolwiek, gdzie #if pacjent może rozmawiać swobodnie.Polecenie #ifdef identyfikatora jest równoważne #if 1 jeśli identyfikator został zdefiniowany i jest równoważnikiem #if 0 jeśli identyfikator nie został zdefiniowany lub jego definicja została usunięta w dyrektywie #undef.Te dyrektywy kontrolują jedynie obecność lub brak obecności identyfikatorów zdefiniowanych z #define, a nie identyfikatorów zdeklarowanych w kodzie źródłowym C lub C++.

Te dyrektywy są uwzględnione jedynie w celu zgodności z poprzednim wersjami języka.Zdefiniowany( identyfikator ) wyrażenia stałego używanego z dyrektywą #if.

Dyrektywa #ifndef sprawdza przeciwieństwo warunku sprawdzone przez #ifdef.Jeśli nie zdefiniowano identyfikatora (lub jego definicja została usunięta z #undef), warunek przyjmuje wartość prawda (różną od zera).W przeciwnym razie warunek ma wartość false (0).

Specyficzne dla firmy Microsoft

Identyfikator może być przekazywany z wiersza polecenia przy użyciu opcji /D.Do 30 makr można zdefiniować przy użyciu /D.

Jest to przydatne w celu sprawdzenia czy definicja istnieje, ponieważ definicja może być przekazana z wiersza poleceń.Na przykład:

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

KONIEC informacji specyficznych dla firmy Microsoft

Zobacz też

Informacje

Dyrektywy preprocesora