您的位置:首页 > 编程语言 > C语言/C++

c语言枚举enum

2016-03-10 21:43 337 查看
一、枚举的概述

在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作,而我们也可以利用枚举来达到这个目的

#define MON  1

#define TUE   2

#define WED  3

#define THU   4

用枚举的写法为

enum DAY

{

MON=1, TUE, WED, THU, FRI, SAT, SUN

};//这就是一个枚举类型的的定义


<span style="background-color: rgb(255, 255, 255); font-family: 'Courier New'; line-height: 12px;">它的含义是定义了一种为enum day变量类型(enum是个关键字),如果在程序中声明一个这样类型的变量(例如enum DAY today),这种类型的变量的</span>


取值只能整形常量,并且范围在括号中的值,但每次只能有一个值。

理解枚举应该注意一下几点:

(1) 枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开。

(2) DAY是一个标识符,可以看成这个集合的名字,是一个可选项,即是可有可无的项。

(3) 第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。

(4) 可以人为设定枚举成员的值,从而自定义某个范围内的整数。//这里的数可以自由设定,不一定要按照某种规律

(5) 枚举型是预处理指令#define的替代。

(6) 类型定义以分号;结束

(7) 同一个程序中不能有同名的枚举类型和枚举成员(枚举变量可能的取值的名称)

<span style="font-size:18px;">枚举类型名称的重复</span><pre name="code" class="csharp"><span style="font-size:18px;">typedef enum

{

wednesday,

thursday,

friday

}day;

typedef enum week

{

saturday,

sunday ,

monday,

}day;</span>
<span style="font-size:18px;">
枚举成员名称的重复
typedef enum
{
wednesday,
thursday,
friday,
} badday;

typedef enum week
{
wednesday,
sunday,
monday,
} goodday;</span>




二、枚举变量的声明方式

1:枚举类型的定义和声明在一起在一起

<span style="font-size:18px;"><span style="white-space:pre">	</span>enum DAY//这里的DAY可以省略掉

{
MON, TUE, WED, THU, FRI, SAT, SUN
}day;</span>



2:枚举类型的定义和声明分开

<span style="white-space:pre">	</span>enum DAY

{
MON, TUE, WED, THU, FRI, SAT, SUN

}//枚举类型的定义


枚举类型的说明

<span style="font-size:18px;"><span style="white-space:pre">	</span>enum DAY yesterday;
<span style="white-space:pre">	</span>enum DAY today;
<span style="white-space:pre">	</span>enum DAY tomorrow; //变量tomorrow的类型为枚举型enum DAY
<span style="white-space:pre">	</span>enum DAY good_day, bad_day; //变量good_day和bad_day的类型均为枚举型enum DAY</span>


3:用typedef关键字将枚举类型定义成别名,并利用该别名进行变量声明:

<span style="font-size:18px;"><span style="white-space:pre">	</span>typedef enum day//此处的day可以省略掉
<span style="white-space:pre">	</span>{

<span style="white-space:pre">	</span>MON, TUE, WED, THU, FRI, SAT, SUN

<span style="white-space:pre">	</span>} day; <span style="white-space:pre">	</span>//此处的day为枚举型enum day的别名,//day可以省略掉, day today, tomorrow//相当于enum day today, tomorrow;
<span style="white-space:pre">		</span>//上面的可以省略的两处不能同时省略掉

</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: