在C ++中,我知道程序员使用#ifdef 0
阻止代码运行,但在同一个项目中,我看到很多#ifdef 1
。这是否意味着代码总是运行?不幸的是代码没有编译所以我不能只运行和测试!
答案 0 :(得分:12)
#ifdef 1
格式不正确。 #ifdef
指令需要一个标识符; 1
不是标识符。
#ifdef x
相当于#if defined(x)
。如果标识符为已定义的宏命名(即,已使用defined
定义但尚未通过true
未定义的宏)并且{{#define
,则#undef
预处理运算符会生成false
1}}否则。
#if
指令启用或禁用它与它后面的相应#else
,#elif
或#endif
指令(指令嵌套)之间的行的编译。
您可能正在寻找的是#if 1
(或#if 0
),这是有效的。