Typedef 枚举
命名枚举有几种可能性和约定。第一种是在 enum
关键字之后使用标记名称。
enum color
{
RED,
GREEN,
BLUE
};
然后,必须始终将此枚举与关键字和标记一起使用,如下所示:
enum color chosenColor = RED;
如果我们在声明 enum
时直接使用 typedef
,我们可以省略标签名称,然后使用不带 enum
关键字的类型:
typedef enum
{
RED,
GREEN,
BLUE
} color;
color chosenColor = RED;
但在后一种情况下,我们不能将它用作 enum color
,因为我们没有在定义中使用标记名称。一个常见的惯例是使用两者,使得相同的名称可以使用或不使用 enum
关键字。这具有与 C++ 兼容的特殊优点
enum color /* as in the first example */
{
RED,
GREEN,
BLUE
};
typedef enum color color; /* also a typedef of same identifier */
color chosenColor = RED;
enum color defaultColor = BLUE;
功能:
void printColor()
{
if (chosenColor == RED)
{
printf("RED\n");
}
else if (chosenColor == GREEN)
{
printf("GREEN\n");
}
else if (chosenColor == BLUE)
{
printf("BLUE\n");
}
}
欲了解更多关于 typedef
看到的 typedef