三种枚举方式

普通枚举

typedef enum{
    PersonDoctor,
    PersonTeacher
}Person;

这样定义的枚举的值,首位是0,后续依次加1,在此例,PersonDoctor的值为0,PersonTeacher为1。

位移枚举

typedef enum {
    PersonDoctor = 1<<0,   // 0b0001
    PersonTeacher = 1<<1,   // 0b0010
} Person;

这样定义的枚举的值,往后1依次按算式标明的那样计算移位。在此例中,PersonDoctor十进制的值是1,PersonTeacher十进制的值是2。
使用位移枚举的好处:
比如person既是doctor也是teacher的时候,就不用在创建一个枚举PersonDoctorAndTeacher,采用以下的方式:

person.type = PersonDoctor | PersonTeacher;

这样person.type就会做或运算
二进制 0001 | 0010 = 0011,转换成十进制就是3。

类型枚举

typedef NS_ENUM(NSInteger,PersonType)
{
    PersonTypeDoctor,
    PersonTypeTeacher,
};

使用时:

PersonType personType = PersonTypeDoctor;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值