即使宏定义为C ++,#ifndef也会触发

时间:2018-06-04 18:50:30

标签: c c-preprocessor

预处理器#ifndef指令不起作用。即使宏在不同的文件中定义,它也会触发。

我有3个文件 - main.cpp,trainer.cpp和trainer.h

在main.cpp中:

#define BASE_OFFSET 0x0053D38C
#include "trainer.h"
int main() {
... //some code
}

并在trainer.h文件中:

/*bunch of defines*/    
#ifndef BASE_OFFSET
#error define BASE_OFFSET!
#endif
/*main code here*/

编译器返回错误:Error C1189 #error: define BASE_OFFSET!

我的问题是:为什么会触发它,以及如何让它像预期的那样工作。

PS:我运行VS社区2017,如果它与它有关,因为我通常编写Linux

0 个答案:

没有答案