预处理器#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