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

JTD*_*MAN 2 c++ macros conditional-compilation c-preprocessor preprocessor-directive

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

Jam*_*lis 12

#ifdef 1是不正确的.该#ifdef指令需要一个标识符; 1不是标识符.

#ifdef x相当于#if defined(x).所述defined预处理运算收率true如果标识符名称的定义的宏(即,已被定义了宏#define并通过尚未未定义#undef)和false其它.

所述#if指令允许或禁止在它和对应的线的汇编#else,#elif#endif它后面(在指令巢)指令.

您可能正在寻找的是#if 1(或#if 0),这是有效的.