枚举数据类型

将一系列值指派给一个变量

枚举数据类型的定义以关键字enum开头,之后是枚举数据类型的名称,然后是标识符序列(包含在一对花括号内),他们定义了允许给该类型指派的所有的允许值。

例如:

enum  flag { false , true}  定义了一个flag类型。

要声明一个flag类型变量,仍需要用到关键字enum,之后是枚举类型的名称,最后是变量序列。例如:

enum flag endOfData,matchFound;定义了两个flag类型的变量endOfData和matchFound,能指派给这两个变量的值只有(理论上是这样)true和false。

如果希望一个枚举标识符对应一个特定的整数值,那么可以在定义数据类型时给该标识符指定整数值。例如:

enum direction { up, down,left = 10,right};   定义了一个包含up, down,left ,right的枚举类型direction,因为up位于序列首位,所以编译器给他赋值为0,down接着up,给它赋值为1,由于left 明确指定一个整数,赋给它的值就是10,right的值由列表中前一个enum的值递增得到,因此,给它赋值11.

枚举标识符可以共享相同的值,例如:

enum boolean {no = 0,false = 0,true = 1,yes = 1};

objective c编译器实际上将枚举类标识符作为整型常量来处理。可以明确地给枚举可以给枚举类型地变量指派一个整数值,这应该使用类型转换运算符。如果不使用类型转换运算符,编译器也不会有异议。

使用枚举类型时,尽量不要依赖枚举值被作为整数这个实事。相反,尽量把它当作独立地数据类型,枚举类型提供了一种方法,使你能把整数值和有象征意义的名称对应起来。

在定义枚举类型时,允许有变化:可以省略数据类型的名称,定义该类型时,可以将变量声明为特定枚举数据类型中的一个,例如:

enum {east,west,south,north} direction;定义了一个(未命名的)枚举数据类型,它包含的值为east,west,south和north,同时还定声明了该类型的变量direction。

在代码块中定义的枚举数据类型的作用域限于块的内部。另一方面,在程序的开始及所有块之外定义的枚举数据类型对于该文件是全局的。

定义枚举数据类型时,必须确保枚举标识符域定义在相同作用域之内的变量名和其他标识符不同。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值