我可以用 #if 做什么?
What can('t) I do with #if?
我在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
失败了。我该怎么解决这个问题?
好吧,正如您已经注意到的,您不能这样做。改为这样做:
#if _DEBUG || (NDEBUG && _WIN64)
# define CONFIG_OPTION2 1
#endif
相关文章:
- 使用枚举作为条件,if 条件将返回什么,真或假?
- 什么可以用来替换代码中的循环和 if 语句?
- 这个 FOR-IF 循环的解释是什么?
- if(i | j) 和 if (i & j) 在C++中做什么
- 在 if 语句中处理多个 or 的更优雅的方法是什么
- de if-Block 是什么意思
- if 语句正在检查什么条件
- 有什么更好的表现?IF或正常循环的不定循环
- if(!pointer) 和 if(!*pointer) 有什么区别?
- 前循环后的if stategent是什么意思
- C++:无论如何,有什么可以知道是什么触发了 If 语句
- 关于"if" "elseif" "else"陈述的良好做法是什么
- 在 c++ 中使用两个 if 有什么区别吗
- 不必要的 else 语句:当可以使用 IF 时,使用 ELSE IF 有什么缺点吗?
- "[Error] expected unqualified-Id before 'if'"这个代码块是什么意思
- 打印此矩阵的 if 语句是什么
- 我的 if 语句逻辑出了什么问题?
- 同时执行 if 和 else 条件的逻辑是什么
- if(NULL==指针)和if(指针==NULL)之间有什么区别
- 这个IF语句有什么问题吗?(C++)