C 枚举


C 枚举

一个枚举是一种特殊类型,表示一组常量(不可更改的值)。

要创建枚举,请使用enum关键字,后跟枚举名称,并用逗号分隔枚举项:

enum Level {
  LOW,
  MEDIUM,
  HIGH
};

请注意,最后一项不需要逗号。

不要求使用大写,但通常被认为是良好的做法。

Enum 是"enumerations" 的缩写,意思是"specifically listed"。

要访问枚举,您必须创建它的变量。

在 - 的里面main()方法,指定enum关键字,后跟枚举的名称 (Level),然后是枚举变量的名称(myVar在此示例中):

enum Level myVar;

现在您已经创建了一个枚举变量(myVar),您可以为其赋值。

分配的值必须是枚举内的项目之一(LOW,MEDIUM或者HIGH):

enum Level myVar = MEDIUM;

默认情况下,第一项 (LOW)有值0, 第二 (MEDIUM)有值1, ETC。

如果您现在尝试打印 myVar,它将输出1,这代表MEDIUM:

int main() {
  // Create an enum variable and assign a value to it
  enum Level myVar = MEDIUM;

  // Print the enum variable
  printf("%d", myVar);

  return 0;
}
亲自试一试 »

改变值

如您所知,枚举的第一项值为 0。第二项值为 1,依此类推。

为了更好地理解这些值,您可以轻松更改它们:

enum Level {
  LOW = 25,
  MEDIUM = 50,
  HIGH = 75
};
printf("%d", myVar); // Now outputs 50
亲自试一试 »

请注意,如果您为一个特定项目分配一个值,则下一个项目将相应地更新其编号:

enum Level {
  LOW = 5,
  MEDIUM, // Now 6
  HIGH // Now 7
};
亲自试一试 »

Switch 语句中的枚举

枚举经常用在 switch 语句中来检查相应的值:

enum Level {
  LOW = 1,
  MEDIUM,
  HIGH
};

int main() {
  enum Level myVar = MEDIUM;

  switch (myVar) {
    case 1:
      printf("Low Level");
      break;
    case 2:
      printf("Medium level");
      break;
    case 3:
      printf("High level");
      break;
  }
  return 0;
}
亲自试一试 »

为什么以及何时使用枚举?

枚举用于为常量命名,这使得代码更易于阅读和维护。

当您知道不会改变的值(例如月日、天数、颜色、一副牌等)时,请使用枚举。