如何在C中实现scoped枚举

时间:2018-04-08 20:41:17

标签: c enums

在C ++中你可以这样做

enum class Colors {black, blue, green, cyan, red, purple, yellow, white};
Colors mycolor;

mycolor = Colors::blue; // this is what I want to do

C中,是否可以使用EnumName::tag引用枚举?

1 个答案:

答案 0 :(得分:2)

  

在C中,是否可以使用EnumName :: tag?

引用枚举

不,不是。阅读C11标准,例如n1570草案(§6.7.2.2)

在实践中,C程序员有很多约定,例如对某些enum中的所有标记使用一些公共前缀。

例如,GTK enum GtkShadowType的所有标记都以GTK_SHADOW_开头