Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
#ifdef Dyrektywy preprocesora i #ifndef mają taki sam efekt jak #if dyrektywa, gdy jest używana z operatoremdefined.
Składnia
#ifdefidentifier
#ifndefidentifier
Te dyrektywy są równoważne:
#if definedidentifier
#if !definedidentifier
Uwagi
Można użyć #ifdef dyrektyw i #ifndef w dowolnym miejscu #if . Instrukcja jest równoważna #ifdef identifier #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. Na przykład:
// ifdef_ifndef.CPP
// compile with: /Dtest /c
#ifndef test
#define final
#endif
END Microsoft Specific