【发布时间】:2012-01-04 20:55:48
【问题描述】:
我在 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 使用宏作为条件失败。我该如何解决这个问题?
【问题讨论】:
标签: c++ c-preprocessor preprocessor-directive