编程中常用的数据类型包括:结构体、枚举、共用体
本文主要讲解枚举的使用如下,
一、枚举的定义和使用:
定义:枚举型是一种类似于int 、float、char等的数据类型,主要用于进行变量的类型的声明。当一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型,将可能存在的值罗列出来,如下所示,主要分为两个部分:枚举类型的定义、变量的声明。
enum LOCK_STATUS //枚举类型的定义,标志符LOCK_STATUS 可以省略
{
LOCK_IDLE,
LOCK_CLOSE,
LOCK_UNLOCK,
LOCK_INCHING,
}LOCK_STATUS; //变量的声明
可将定义和声明分开写:
enum LOCK_STATUS //枚举类型的定义
{
LOCK_IDLE,
LOCK_CLOSE,
LOCK_UNLOCK,
LOCK_INCHING,
};
enum LOCK_STATUS status;//此时变量status为枚举类型。。
二、通过typedef关键字将枚举类型定义成别名,并使用该别名进行变量的类型声明:
typedef enum //标志符被省略
{
LOCK_IDLE,
LOCK_CLOSE,
LOCK_UNLOCK,
LOCK_INCHING,
}LOCK_STATUS; //此处的LOCK_STATUS为枚举的别名
LOCK_STATUS Type; //利用枚举的别名对变量Type进行类型的声明
注:
(1) 枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开。
(2) enum后的LOCK_STATUS 是一个标识符,可以看成这个集合的名字,不论是在变量的声明还是枚举类型别名的定义上都可有可无。大括号后的LOCK_STATUS 是一个类型为枚举型的变量,可以同时声明多个具有相同特性的枚举型变量。
(3) 当枚举成员没有被赋值时,第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1,并自动赋值。
(4) 枚举变量中的枚举元素系统是按照常量来处理的,故叫枚举常量,不能进行普通的赋值操作(eg. LOCK_IDLE=1),只能 在声明时进行赋值,同时,若只赋值了第一个枚举成员那么系统将对下一个元素进行前一个元素的值加1操作,自动进行赋 值。
(5) 枚举型是预处理指令#define的替代。
(6) 不论将枚举类型的定义、变量的声明分开还是合在一起写,都应以分号;结束。
(7) 同一个程序中不能定义同名的枚举类型,不同的枚举类型中也不能存在同名的命名常量