Enum和typedef
【枚举类型】
使用emum关键字创建枚举。
-
// 定义一个枚举,用来表示方向 enum Direction{ up, down, middle, left, right };
枚举的值都可以用数字表示,默认从零开始递增
enum Direction direction = up ; // 输出0 NSLog(@"direction = %i",direction); direction = down ; // 输出1 NSLog(@"direction = %i",direction); direction = middle ; // 输出2 NSLog(@"direction = %i",direction); direction = left ; // 输出3 NSLog(@"direction = %i",direction); direction = right; // 输出4 NSLog(@"direction = %i",direction);
- 自定义枚举的值。
枚举的值默认从零开始递增,下一个枚举值是上一个枚举值+1,如果我们自定义了枚举值,那么下一个枚举值是上一个自定义的枚举值+1
-
enum Direction{ up ,// 0 down=10,//10 middle,//11 left,//12 right//13 };
数字转换成枚举
因为枚举都是用数字表示的,那么数字也可以转换成枚举。
-
// 定义枚举 enum Dir{ up, down }; // 数字转枚举 enum Dir dir =0; // 检测是否相等 if(dir == up) { NSLog(@"相等..."); }
typedef定义别名
typedef可以为复杂的声明定义别名,比如我们上面的枚举。
-
// 为enum Dir 启用别名 typedef enum Dir Direction;
-
或者定义成简写模式
//简写模式 enum { up, down } Direction ;
有了如上的别名定义,在往后的使用过程中我们可以这样使用Dir 枚举
-
// 使用别名的枚举 Direction direction = up ;
typedef不仅可以定义enum的别名,int、float等其他类型均可定义
以后我们会使用的NSInteger就是int的别名定义。在XCode代码编辑器中‘
’图标表示typedef别名。