枚举是一种用户定义的数据类型,它允许为整型常量赋予更有意义的名称。枚举类型提供了一种定义变量可能取值的方式,使代码更加清晰和易于维护。

枚举,也就是把可能得取值一一列举,它允许我们定义一组命名的整数值,而这些值在定义后不能被修改,因此表现出常量的特性。

一.枚举的定义

枚举类型的定义使用enum关键字,后面跟着枚举类型的名称,以及在大括号{}中包含的枚举成员(即可能的取值)。每个枚举成员都是一个整型常量。

enum Day//列举星期一二三
{
  Mon = 1,
  Tues = 2,
  Wed = 3
};

枚举中存在日后变量的可能取值,在之后代码中写到的Mon,Tues,Wed会被1,2,3替换;如果没有初始化,枚举中会默认第一个是0,后面变量值一次+1;或者只初始化第一个也是一样,后面的变量值会根据第一个的值一次+1;

##c关于枚举_取值

二.枚举变量声明

enum Day day = M;

在这个例子中,day是一个Day枚举类型的变量,它可以被赋值为MonTuesWed中的任何一个。

三.使用

1,枚举变量的使用是为了增加代码的可读性和可维护性,它和#define有类似的功能,但是枚举定义的标识符有类型检查,且对变量进行了封装,更加严谨也防止了命名污染(枚举类的作用域被限定在其声明的地方,只能在声明它的作用域内访问枚举成员。这意味着枚举成员的名字不会泄露到包含它的外部作用域,从而避免了命名冲突);同时,enum 在预处理之后不替换,便于调试。

2,枚举变量可以用于赋值、比较和作为函数的参数或返回值,可与switch,case结合使用

#include <stdio.h>
enum Color { RED, GREEN, BLUE };
void printColor(enum Color color)
{
    switch(color) 
    {
        case RED:
            printf("Red\n");
            break;
        case GREEN:
            printf("Green\n");
            break;
        case BLUE:
            printf("Blue\n");
            break;
    }
}
int main()
{
    enum Color myColor = GREEN;
    printColor(myColor); // 输出: Green
    return 0;
}