枚举
C 枚举
在本教程中,您将通过示例了解 C 编程中的 enum(枚举)。
在 C 编程中,枚举类型(也称为 enum)是一种由整数常量组成的数据类型。要定义枚举,enum
使用了关键字。
enum flag {const1, const2, ..., constN};
默认情况下,const1 为 0,const2 是 1 等等。您可以在声明期间更改枚举元素的默认值(如有必要)。
// Changing default values of enum constants enum suit { club = 0, diamonds = 10, hearts = 20, spades = 3, };
枚举类型声明
定义枚举类型时,会创建变量的蓝图。以下是创建枚举类型变量的方法。
enum boolean {false, true}; enum boolean check; // declaring an enum variable
这里,一个变量 check enum boolean
类型的 已创建。
你也可以像这样声明枚举变量。
enum boolean {false, true} check;
这里,false
的值 等于 0 和 true
的值 等于1。
示例:枚举类型
#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;
}
输出
Day 4
为什么使用枚举?
枚举变量只能采用一个值。这是一个例子来演示它,
#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;
}
输出
Size of enum variable = 4 bytes
在这里,我们得到
4
因为 int
的大小 是4个字节。
这使得 enum 成为处理标志的好选择。
如何使用枚举作为标志?
举个例子吧,
enum designFlags {
ITALICS = 1,
BOLD = 2,
UNDERLINE = 4
} button;
假设您正在为 Windows 应用程序设计一个按钮。您可以设置标志 ITALICS , 粗体 和 下划线 处理文本。
上述伪代码中所有的积分常数都是2的幂是有原因的。
// In binary ITALICS = 00000001 BOLD = 00000010 UNDERLINE = 00000100
由于积分常数是 2 的幂,因此您可以一次组合两个或多个标志而不会使用按位 OR | 重叠。操作员。这允许您一次选择两个或多个标志。例如,
#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;
}
输出
5
当输出为 5 时,你总是知道使用了粗体和下划线。
此外,您可以根据自己的要求添加标志。
if (myDesign & ITALICS) { // code for italics }
在这里,我们在设计中添加了斜体。注意,只有斜体代码写在 if
内 声明。
您几乎可以在不使用枚举的情况下完成 C 编程中的任何事情。但是,它们在某些情况下会非常方便。
C语言