enum
元素的名称是易受重叠/碰撞与两个其他枚举元素名,变量名等...避免名称冲突,在C(C99)枚举
enum Fruit
{
apple,
orange
};
typedef enum Fruit Fruit;
enum Color
{
red,
orange // <-- ERROR
};
typedef enum Color Color;
char apple='a'; // <-- ERROR
是否有一个兼容的C99溶液避免每个枚举元素名称的前缀之外的冲突?
旁注:这个问题已经回答了C++
How to avoid name conflicts for two enum values with the same name in C++?
我正在寻找一个解决方案C99。
是的,使用一个合适的名称,比如'color_orange'和'fruit_orange'。阅读时也应避免混淆。 –
除了为每个枚举元素名称添加**之外,是否还有解决方案**? – Paolo
也许,但它可能是一个不好的解决方案,这是一个很好的解决方案,也有助于可读性。 –