【问题标题】:What does #ifdef 1 in C++#ifdef 1 在 C++ 中是什么意思
【发布时间】:2011-10-14 18:50:32
【问题描述】:

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

【问题讨论】:

  • 您是否误读了代码?它实际上是说#if 0#if 1 吗?

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


【解决方案1】:

#ifdef 1 格式不正确。 #ifdef 指令需要一个标识符; 1 不是标识符。

#ifdef x 等价于#if defined(x)defined 预处理运算符产生true,如果标识符命名了一个已定义的宏(即,一个已用#define 定义但尚未通过#undef 未定义的宏),否则产生false

#if 指令启用或禁用它与它后面的相应 #else#elif#endif 指令之间的行的编译(指令嵌套)。

很有可能,您真正要找的是#if 1(或#if 0),这是有效的。

【讨论】:

  • 除了#if 1 中的 1 也被认为是 true 并相应地启用编译,而 #if 0 中的 0 是 false 之外,可以说一切都可以......
猜你喜欢
  • 2010-12-28
  • 2015-10-18
  • 2021-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多