Рекомендации и #ifdef #ifndef (C/C++)
#ifdef и #ifndef директивы выполняют одну и ту же задачу как #if при использовании директива defined( Идентификатор ).
#ifdef identifier
#ifndef identifier
// equivalent to
#if defined identifier
#if !defined identifier
Заметки
Можно использовать #ifdef и #ifndef рекомендации в любом месте #if может использоваться.#ifdef Идентификатор выписка эквивалентна#if 1после Идентификатор определяет, и он эквивалентен#if 0после Идентификатор не указано или не определен с #undef директива.Эти правила проверяют только наличия или отсутствия идентификаторов, указанных с #defineне для идентификаторов, объявленных в исходном коде c или C++.
Эти рекомендации предназначены только для совместимости с предыдущими версиями языка.задан ( Идентификатор ) константное выражение, используемое с #if директива предпочтена.
#ifndef директива проверяет наличие условий для проверенного противоположности by #ifdef.Если идентификатор не задан (или ее определение было удалено с #undefусловие имеет значение true (), не равно нулю).В противном случае условие имеет значение false (0).
Только для систем Microsoft
Идентификатор может передаваться из командной строки с помощью параметра /D.До 30 макросов может быть определено параметром /D.
Это полезно для проверки существования определение, потому что определение может передаваться из командной строки.Примеры.
// ifdef_ifndef.CPP
// compile with: /Dtest /c
#ifndef test
#define final
#endif
ЭЛЕМЕНТ, относящийся Майкрософт