我在 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
使用宏时条件失败。我该如何解决这个问题?
答案 0 :(得分:2)
好吧,正如你已经注意到的那样,你不能那样做。做这样的事情:
#if _DEBUG || (NDEBUG && _WIN64)
# define CONFIG_OPTION2 1
#endif