C++ 条件编译指令:多个文件

C++ Conditional compilation directives: multiple files

我有 2 个文件,main.cpphead.h

//main.cpp
#define DEBUG2019 1
#include 'head.h' 
int main{
A A1;
return 0;
}

//head.h
class A{
#ifdef DEBUG2019
int p;
#endif
int q;
};

你看,我在main.cpp里定义了DEBUG2019。但是在我的 visual studio 2019 中, int phead.h 中仍然是灰色的。这是为什么?为什么 head.h 不知道 DEBUG2019 已经被定义了?你可能会建议我直接在头文件中定义 DEBUG2019 。但是我必须在 main.cpp.

中定义它

要在项目级别定义宏,您可以将其定义为预处理器指令:右键单击和 select 属性,然后在 C/C++ ->Preprocessor-> Preprocessor Definitions 中定义您的宏.

在公共头文件中定义宏,并在相关的其他文件中使用它(你已经这样做了,所以你可以忽略灰色区域)。

就我而言,你应该使用#include "head.h" 而不是#include 'head.h'

这里是main.cpp的代码:

#include <iostream>
#define DEBUG2019 1
#include "head.h"
int main()
{
A A1;
return 0;
}