Я сталкиваюсь с этой проблемой.Речь идет не о макро-функциях, а о простой замене строкового макроса.
У меня есть два заголовочных файла
test1.h
#define TEST 123
test2.h
#define TEST 456
Теперь у меня есть программа, включающая оба эти заголовка, но я хочу, чтобы мойна самом деле TEST должен быть 123. Как я могу избежать определения TEST как 456?
Вы можете подумать, что я сумасшедший не просто изменить макрос, но ситуация такова: у меня есть сторонний декодер, который имеетэтот макрос (определенный в test1.h), и есть другой макрос WINAPI (определенный в test2.h).Оба эти файла контролируются другими;Я не должен менять ни одного из них.Мне вообще не нужен test2.h, но я предполагаю, что он неявно включен в какой-то другой заголовок WINAPI.
Итак, кто-нибудь может подсказать, как обойти эту проблему?Перезаписать макрос WINAPI моим сторонним макросом?Или как обнулить определение из заголовка WINAPI в моем собственном коде?Есть ли способ указать, какой заголовок я не хочу включать.