是否可以通过在源文件中使用定义在两个不同的源文件中以不同方式编译头文件?
例如,如果我在两个源文件中包含一个标头,如下所示:
标头.h:
#if FOO
#define BAR(x) f(x)
#else
#define BAR(x) g(x)
#endif
源1.cpp:
#define FOO 1
#include "header.h"
void a(int x) {
BAR(x); // f(x)?
}
源代码2.cpp
#include "header.h"
void b(int x) {
BAR(x); // g(x)?
}
这不应该编译以便函数 a 执行 f 而函数 b 执行 g 吗?
我正在尝试在 XCode 和 Objective-C++ 中执行此操作。a 和 b 都执行 g,就好像 source1.cpp 没有定义 FOO 一样。