C ++ #define值未在cpp文件中读取

时间:2017-02-16 05:58:54

标签: c++ compiler-directives

在我的C ++ .h文件中:

class foo {
#define useThis true

...
}

在我的.cpp文件中:

#if useThis
... generate A code
#else
... generate B code
#endif

问题是#define文件中没有读取.cpp值,因此正在生成的是A和B都在生成。

我将.h文件包含在.cpp文件的顶部。

1 个答案:

答案 0 :(得分:0)

布尔值不能在某些编译器的宏中使用,例如Visual Studio(尽管在g ++下工作)。交叉编译方式应该是:

#define useThis 1

或者,定义一个没有值的宏,并使用ifdef来测试它是否已定义:

#define useThis

#ifdef useThis
    ...
#else
    ...
#endif