c – 冲突的枚举

前端之家收集整理的这篇文章主要介绍了c – 冲突的枚举前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果两个不同的库定义相同的枚举并且我需要在同一个项目中使用这两个库,会发生什么?

enum月{January = 0,February,…,December}

谢谢.

附:它是C.没有命名空间.我无法将它们分开.需要一些解决方法.

什么是枚举链接?内部还是外部? C项目中使用的C库. 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的文件中.当然,在你的情况下,定义是相同的,所以你不应该诉诸于此,但我在这里留下这个答案,为不幸的子孙后代.

原文链接:https://www.f2er.com/c/117741.html

猜你在找的C&C++相关文章