C ++中的#ifdef 1是什么?

时间:2011-07-28 03:09:44

标签: c++ macros c-preprocessor conditional-compilation preprocessor-directive

在C ++中,我知道程序员使用#ifdef 0阻止代码运行,但在同一个项目中,我看到很多#ifdef 1。这是否意味着代码总是运行?不幸的是代码没有编译所以我不能只运行和测试!

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),这是有效的。