如果两个不同的库定义相同的枚举并且我需要在同一个项目中使用这两个库,会发生什么?
enum月{January = 0,February,…,December}
谢谢.
附:它是C.没有命名空间.我无法将它们分开.需要一些解决方法.
解决方法
终极魔法邪恶向导解决方法:如果名称空间无效(无论出于何种原因),并且您绝对无法避免在同一文件中包含这两个定义,请使用宏:
#define Month File_A_Month #include "file_a.h" #define Month File_B_Month #include "file_b.h" #undef Month
在文件中,永远不要使用Month,只使用File_A_Month或File_B_Month.我不确定这种做法的标准是否正确.
您可能必须类似地定义所有枚举成员以防止冲突,并且您可能希望将这个邪恶的hackery放在名为files_a_and_b.h的文件中.当然,在你的情况下,定义是相同的,所以你不应该诉诸于此,但我在这里留下这个答案,为不幸的子孙后代.