C 枚举
本文通过实例介绍了在 C 语言中使用 enum 关键字定义枚举类型。
在 C 语言编程中,枚举类型是一种由整数常量组成的数据类型。C 语言使用 enum
关键字定义枚举类型。
enum EnumType {const1, const2, constN};
以上定义了一个枚举类型 EnumType
,此枚举类型的枚举值包括: const1
, const2
, constN
。
默认情况下, const1
对应着整数值 0
, const1
对应着整数值 1
, 以此类推。如有必要,我们也可以在声明期间更改枚举元素的默认值。
// 改变枚举常量的默认值
enum suit {
club = 0,
diamonds = 10,
hearts = 20,
spades = 3,
};
枚举类型声明
声明枚举类型时,只是声明了一个数据类型,并不会创建变量和分配内存。以下是创建枚举类型变量的方法:
enum boolean {false, true}; // 声明枚举类型
enum boolean 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()
{
// 创建一个枚举类型的变量
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 个字节。