我遇到了這個問題。這不是關於宏功能,只是簡單的字符串值宏替換。宏定義衝突
我有兩個頭文件
test1.h
#define TEST 123
test2.h
#define TEST 456
現在我有一個程序既包括這兩個頭,但我希望我的實際測試爲123 如何避免定義測試爲456?你可能會認爲我瘋了,而不是簡單地改變宏,但情況是:我有一個第三方解碼器,它有這個宏(在test1.h中定義),還有另一個WINAPI宏(已定義在test2.h中)。這兩個文件都由其他人控制;我不應該改變他們中的任何一個。 我根本不需要test2.h,但我想它隱含地包含在其他一些WINAPI頭文件中。
那麼,有誰能請告訴我如何解決這個問題?用我的第三方宏覆蓋WINAPI宏?或者如何在我自己的代碼中取消WINAPI頭文件中的定義?有沒有辦法指定我不想包含哪個頭。
你可以重新定義它在你的代碼中,包括之後。這將再次重新定義它,以便它在任何需要它的地方都有正確的值。 – Patrick87