💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 枚举 > 原文: [https://www.programiz.com/c-programming/c-enumeration](https://www.programiz.com/c-programming/c-enumeration) #### 在本教程中,您将借助示例学习 C 编程中的枚举(枚举)。 在 C 编程中,枚举类型(也称为枚举)是由整数常量组成的数据类型。 要定义枚举,请使用`enum`关键字。 ```c enum flag {const1, const2, ..., constN}; ``` 默认情况下,`const1`为 0,`const2`为 1,依此类推。 您可以在声明期间更改枚举元素的默认值(如有必要)。 ```c // Changing default values of enum constants enum suit { club = 0, diamonds = 10, hearts = 20, spades = 3, }; ``` * * * ## 枚举类型声明 定义枚举类型时,将创建变量的蓝图。 这是创建枚举类型变量的方法。 ```c enum boolean {false, true}; enum boolean check; // declaring an enum variable ``` 在此,创建类型为`enum boolean`的变量`check`。 您也可以像这样声明枚举变量。 ```c enum boolean {false, true} check; ``` 在此,`false`的值等于 0,`true`的值等于 1。 * * * ### 示例:枚举类型 ```c #include <stdio.h> enum week {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday}; int main() { // creating today variable of enum week type enum week today; today = Wednesday; printf("Day %d",today+1); return 0; } ``` **输出** ```c Day 4 ``` * * * ## 为什么使用枚举? 枚举变量只能取一个值。 这是一个示范的例子, ```c #include <stdio.h> enum suit { club = 0, diamonds = 10, hearts = 20, spades = 3 } card; int main() { card = club; printf("Size of enum variable = %d bytes", sizeof(card)); return 0; } ``` **输出** ```c Size of enum variable = 4 bytes ``` 在这里,我们得到 4 ,因为`int`的大小是 4 个字节。 这使枚举成为使用标志的好选择。 * * * ### 如何将枚举用于标志? 让我们举个例子 ```c enum designFlags { ITALICS = 1, BOLD = 2, UNDERLINE = 4 } button; ``` 假设您正在设计 Windows 应用的按钮。 您可以将文本设置为使用`ITALICS`,`BOLD`和`UNDERLINE`标记。 在上述伪代码中,所有积分常数均为 2 的幂是有原因的。 ```c // In binary ITALICS = 00000001 BOLD = 00000010 UNDERLINE = 00000100 ``` 由于积分常数是 2 的幂,因此可以使用[按位或`|`运算符一次组合两个或多个标志而不会重叠](/c-programming/bitwise-operators#or "Bitwise OR operator in C programming")。 这使您可以一次选择两个或多个标志。 例如, ```c #include <stdio.h> enum designFlags { BOLD = 1, ITALICS = 2, UNDERLINE = 4 }; int main() { int myDesign = BOLD | UNDERLINE; // 00000001 // | 00000100 // ___________ // 00000101 printf("%d", myDesign); return 0; } ``` **输出** ```c 5 ``` 当输出为 5 时,您始终知道使用了粗体和下划线。 另外,您可以根据需要添加标志。 ```c if (myDesign & ITALICS) { // code for italics } ``` 在这里,我们在设计中添加了斜体。 注意,仅斜体代码写在`if`语句内。 您无需使用枚举就可以在 C 编程中完成几乎所有任务。 但是,它们在某些情况下可能非常方便。