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