enum
元素的名称容易与其他enum
元素名称、变量名称等发生重叠/冲突...
enum Fruit
{
apple,
orange
};
typedef enum Fruit Fruit;
enum Color
{
red,
orange // <-- ERROR
};
typedef enum Color Color;
char apple='a'; // <-- ERROR
除了在每个枚举元素名称前缀上,是否有符合C99标准的避免冲突解决方案?
顺便提一下:这个问题已经在C++中有答案。
我正在寻找一种C99的解决方案。
color_orange
和fruit_orange
。这也应该避免阅读时的混淆。 - Iharob Al AsimiFruit f = orange;
和Color c = orange;
更易读的方式?这样做很整洁,毫无疑问f
是水果,c
是颜色。 - PaoloFruit fruit = FruitOrange;
。在这种情况下,switch (fruit) {case FruitOrange: break ...}
。如果有很多水果,您会很高兴为它们添加前缀。此外,f
可以表示file
、f**ck
和许多其他以f
开头的单词,而fruit
则只是简单的fruit
。 - Iharob Al Asimi