流心
发布于 2024-05-13 / 0 阅读
0

枚举

  • 枚举是一种用户定义的数据类型,它用关键字 enum 来声明

    • enum 枚举类型名字{名字0,....,名字n};

  • 枚举类型名字通常并不真使用,要用的是大括号里的名字,因为它们就是常量符号,他们的类型是 int,值则依次从0到n

    • enum colors { red , yellow , green};

  • 创建了三个常量,red 的值是 0 ,yellow 是 1,而 green 是 2.

  • 当需要一些可以排列起来的常量值时,定义枚举的意义就是给了这些常量值名字

#include<stdio.h>
enum color {red,yellow,green};
void f(enum color c);
int main(void)
{
  enum color t = red;
  scanf("%d",&t);
  f(t);
  return 0;
}
void f(enum color c)
{
  printf("%d\n",c);
}
  • 枚举量可以作为值

  • 枚举类型可以跟上 enum 作为类型

  • 实际上是以整数来做内部运算和外部输入输出

枚举量

  • 声明枚举量的时候可以指定值

    • enum COLOR{ RED=1,YELLOW,GREEN = 5};

  • 枚举只是 int

    • 即使给枚举类型的变量赋不存在的整数值夜没有任何 warning或error

  • 虽然枚举类型可以当做类型使用,但是实际上很少使用

  • 如果有意义排比的名字,用枚举比 const int 方便

  • 枚举比宏(macro)好,因为枚举有 int 类型