原文:http://z515256164.blog.163.com/blog/static/32443029201192182854300/
有改动
C语言详解 -
枚举类型
注:以下全部代码的执行环境为VC++
6.0
在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作,您的代码可能是:
#define MON
1
#define TUE
2
#define WED
3
#define THU
4
#define FRI
5
#define SAT
6
#define SUN
7
在此,我们定义一种新的数据类型,希望它能完成同样的工作。这种新的数据类型叫枚举型。
1.
定义一种新的数据类型 -
枚举型
以下代码定义了这种新的数据类型 -
枚举型
enum
DAY
{
MON=1, TUE, WED, THU, FRI, SAT,
SUN
};
(1)
枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开。
(2)
DAY是一个标识符,可以看成这个集合的名字,是一个可选项,即是可有可无的项。
(3)
第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。
(4)
可以人为设定枚举成员的值,从而自定义某个范围内的整数。
(5)
枚举型是预处理指令#define的替代。
(6)
类型定义以分号;结束。
C语言深度解剖:
一般的定义方式如下:
enum enum_type_name
{
ENUM_CONST_1,
ENUM_CONST_2,
...
ENUM_CONST_n
} enum_variable_name;
注意:enum_type_name 是自定义的一种数据数据类型名,而enum_variable_name
为enum_type_name类型的一个变量,也就是我们平时常说的枚举变量。实际上enum_type_name类型是对一个变量取值范围的限定,而花括号内是它的取值范围,即enum_type_name
类型的变量enum_variable_name
只能取值为花括号内的任何一个值,如果赋给该类型变量的值不在列表中,则会报错或者警告。ENUM_CONST_1、ENUM_CONST_2、...