第5条:用枚举表示状态、选项、状态码

C++11标准扩充了枚举的特性。

枚举只是一种常量命名方式。给常量取一个易懂的名字而已。

 

几种定义方式:

1、

  enum State {

    State1,  

    State2,  

    State3,  

  };

  enum State aState = State1;    //使用

 

2、

  enum State {

    State1,  

    State2,  

    State3,  

  };

 

  typedef enum State State;

  State aState = State1;     //使用

 

3、

  enum State : NSInteger {

    State1,  

    State2,  

    State3,  

  };     //使用“底层数据类型”来保存枚举类型的变量,这样做的好处是,可以“向前声明”(在.h文件中声明)枚举变量了。若不指定底层数据类型,则无法向前声明枚举类型,因为编译器不不清楚底层数据类型的大小,所以在用到此枚举类型时,也就不知道究竟该给变量分配多少空间了。

 

  enum State : NSInteger;   //向前声明

 

4、

enum State {

    State1 = 1,  

    State2,  

    State3,  

  };    //不使用编译器所分配的序号,手动指定枚举成员所对应的值。

 

5、

  enum State {

    State1 = 0,  

    State2 = 1 << 0,  

    State3 = 1 << 1,

    State3 = 1 << 2,  

 

  };  //通过“按位或操作符”来组合,还可以用“按位与操作符”来判断是否已启用某个选项。

 

例:

  enum State aState = State1 | State2;

  if (aState && State1) {

  }

 

 6、

typedef NS_ENUM(NSUInteger, State){

    State1,  

    State2,  

    State3, 

};

//略:Foundation框架中定义了一些辅助的宏,用来指定用于保存枚举值的底层数据类型。这些宏具备向后兼容能力。

 

枚举类型在switch语句中的运用:

   注意:在处理枚举类型的switch语句中不要实现default分支。这样的话,加入新枚举之后,编译器就会警告提示开发者:swith语句并未处理所有枚举。

 

转载于:https://www.cnblogs.com/Pikdays/p/4114561.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值