我遇到了这个问题。这不是关于宏函数,只是简单的字符串值宏替换。
我有两个头文件
test1.h
#define TEST 123
test2.h
#define TEST 456
现在我有一个程序包含了这两个头文件,但是我希望我的实际测试结果是123。如何避免将TEST定义为456?
你可能认为我很疯狂,不直接更改宏,但情况是:我有一个第三方解码器,其中有这个宏(在test1.h中定义),还有另一个WINAPI宏(在test2.h中定义)。这两个文件都由其他人控制,我不应该更改它们中的任何一个。 我根本不需要test2.h,但我想它可能被某些其他WINAPI头文件隐式包含。
那么,请问有谁能告诉我如何解决这个问题?如何用我的第三方宏覆盖WINAPI宏?或者如何在自己的代码中使WINAPI头文件的定义失效?是否有一种方法可以指定不想要包含哪个头文件?