2014-02-13 3 views
-1

Если я ставлю #include внутри #if - #endif будет препроцессор проверить #if, чтобы увидеть, если будет включено содержание #include?#include внутри #if - #endif

#if 0 

#include <foo> 

#endif 

В этом случае, будет foo всегда быть включены или нет?

+0

Я не буду включен в препроцессор. –

+1

Разве это не тривиально проверить? – user2079303

+1

@ user2079303 Я не рекомендую «просто пытаться», когда вы не уверены в чем-то на языке с неопределенным поведением. – BoBTFish

ответ

2

Если условие ложное, тогда все между #if и #endif будет опущено. Это включает в себя любые директивы #include, поэтому файл не будет включен.

2

Внешнее состояние оценивается первым. Если он возвращает значение ложного типа, содержимое внутри не будет обработано.

Смежные вопросы