如何在C中识别重新定义的宏?

rel*_*let 1 c c-preprocessor

我有两个大型框架库,其头文件包含在我的项目中.任何一个都可以完美地工作,但包括两者都会导致不稳定的行为(但没有与宏相关的错误消息).

我假设他们都#define一个同名的宏.识别有问题宏的最有效方法是什么?

utn*_*tim 5

我假设他们都#define一个同名的宏.

这应该至少会产生编译器的警告(如果它们在同一个翻译单元中).

如何在C/C++中识别重新定义的宏?

据我所知,没有直截了当的方式.

任何一个都可以完美地运作,但包括两者都会导致不稳定的行为

你能否告诉我们一些有关古怪行为的细节?究竟发生了什么?是什么让你认为这是宏观定义?