c语言枚举enum
2016-03-10 21:43
337 查看
一、枚举的概述
在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作,而我们也可以利用枚举来达到这个目的
#define MON 1
#define TUE 2
#define WED 3
#define THU 4
用枚举的写法为
取值只能整形常量,并且范围在括号中的值,但每次只能有一个值。
理解枚举应该注意一下几点:
(1) 枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开。
(2) DAY是一个标识符,可以看成这个集合的名字,是一个可选项,即是可有可无的项。
(3) 第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。
(4) 可以人为设定枚举成员的值,从而自定义某个范围内的整数。//这里的数可以自由设定,不一定要按照某种规律
(5) 枚举型是预处理指令#define的替代。
(6) 类型定义以分号;结束
(7) 同一个程序中不能有同名的枚举类型和枚举成员(枚举变量可能的取值的名称)
二、枚举变量的声明方式
1:枚举类型的定义和声明在一起在一起
2:枚举类型的定义和声明分开
枚举类型的说明
3:用typedef关键字将枚举类型定义成别名,并利用该别名进行变量声明:
在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#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>
相关文章推荐
- Python Microsoft Visual C++ Compiler Package for Python 2.7
- Problem G: C语言习题 n个数逆序
- C++ Primer 第九章顺序容器
- Problem F: C语言习题 矩阵元素变换
- C++之:友元函数
- C++第一次实验
- Problem E: C语言习题 矩形法求定积分
- C语言-break和continue
- Problem D: C语言习题 矩阵元素变换
- Problem C: C语言习题 整数排序
- C++模板的学习
- C语言中内存分配
- c++ 阻塞队列的实现
- Problem G: C语言习题 输出月份
- NVIDIA Jetson TK1学习与开发(五):helloworld的C版本与C++版本
- Problem F: C语言习题 不等长字符串排序
- C++ 推断进程是否存在
- Problem E: C语言习题 等长字符串排序
- c++使用库函数判断字符是否是数字
- Problem D: C语言习题 字符串比较