C 枚举

本文通过实例介绍了在 C 语言中使用 enum 关键字定义枚举类型。

在 C 语言编程中,枚举类型是一种由整数常量组成的数据类型。C 语言使用 enum 关键字定义枚举类型。

enum EnumType {const1, const2, constN};

以上定义了一个枚举类型 EnumType,此枚举类型的枚举值包括: const1, const2, constN

默认情况下, const1 对应着整数值 0const1 对应着整数值 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 个字节。