У меня есть куча параметров конфигурации препроцессора, определенных в config.h . Я использую их так:
#if CONFIG_OPTION1
/* do some stuff */
#endif
config.h содержит их определения:
#define CONFIG_OPTION1 _DEBUG
#define CONFIG_OPTION2 _DEBUG || (NDEBUG && _WIN64)
...
Выше не работает. Я хочу включить и выключить эти параметры конфигурации на основе конфигурации (отладка, выпуск и т. Д.) И / или других определений. Это также не работает, если я делаю:
#define CONFIG_OPTION1 defined(_DEBUG) || defined(NDEBUG)
Я никогда не попаду внутрь #if CONFIG_OPTION1
, даже если условие выглядит так, как будто оно должно быть выполнено. Когда я пишу #if defined(_DEBUG)
, это работает нормально, но #if
с макросом, поскольку условие не выполняется. Как я могу это исправить?