Что значит #ifdef 1 в C ++ - PullRequest
2 голосов
/ 28 июля 2011

в C ++, я знаю, что программисты используют #ifdef 0, чтобы заблокировать запуск кода, но в этом же проекте я вижу много #ifdef 1. Значит ли это, что код всегда выполняется? К сожалению, код не компилируется, поэтому я не могу просто запустить и протестировать!

1 Ответ

12 голосов
/ 28 июля 2011

#ifdef 1 плохо сформирован.Директива #ifdef требует один идентификатор;1 не является идентификатором.

#ifdef x эквивалентно #if defined(x).Оператор предварительной обработки defined возвращает true, если идентификатор называет определенный макрос (т. Е. Макрос, который был определен с помощью #define и еще не определен с помощью #undef) и false в противном случае.

Директива #if включает или отключает компиляцию строк между ней и соответствующей ей директивой #else, #elif или #endif (директива гнездится).

Скорее всего, чтоВы действительно ищете #if 1 (или #if 0), который действителен.

...