1

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

class foo {
#define useThis true

...
}

在我的.cpp文件中:

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

问题是文件#define中没有读取这些值.cpp,所以正在生成 A 和 B。

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

4

1 回答 1

1

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

#define useThis 1

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

#define useThis

#ifdef useThis
    ...
#else
    ...
#endif
于 2017-02-16T07:42:49.727 回答