0

我在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使用宏作为条件失败。我怎样才能解决这个问题?

4

1 回答 1

2

好吧,正如您已经注意到的那样,您不能那样做。改为执行以下操作:

#if _DEBUG || (NDEBUG && _WIN64)
#   define CONFIG_OPTION2 1
#endif
于 2012-01-04T21:03:08.303 回答