A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 于清扬 中级黑马   /  2014-3-31 14:36  /  1161 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 于清扬 于 2014-4-3 17:23 编辑

看资料看到代码中定义了这段枚举,
typedef enum {
    SUGGESTTYPE_STATION = 0X40,
    SUGGESTTYPE_ROUTE,
    SUGGESTTYPE_POI_START,
    SUGGESTTYPE_POI_END,
    SUGGESTTYPE_ROUTE_HISTORY,
    SUGGESTTYPE_STATION_HISTORY,
}SUGGESTTYPE

我逐个打印了下,
NSLog(@"%d",SUGGESTTYPE_STATION);
    NSLog(@"%d",SUGGESTTYPE_ROUTE);
    NSLog(@"%d",SUGGESTTYPE_POI_START);
    NSLog(@"%d",SUGGESTTYPE_POI_END);
    NSLog(@"%d",SUGGESTTYPE_ROUTE_HISTORY);
    NSLog(@"%d",SUGGESTTYPE_STATION_HISTORY);
为什么结果是
2014-03-31 13:40:39.509 1111[802:60b] 64
2014-03-31 13:40:39.511 1111[802:60b] 65
2014-03-31 13:40:39.512 1111[802:60b] 66
2014-03-31 13:40:39.513 1111[802:60b] 67
2014-03-31 13:40:39.514 1111[802:60b] 68
2014-03-31 13:40:39.515 1111[802:60b] 69

枚举不特别说明的话是从0开始的,这个0X40是怎么算得,为什么是从64开始的。。。????

6 个回复

倒序浏览
枚举不特别说明的话是从0开始的;但是也可以给它赋一个初始值的。如:
  1. typedef enum {
  2.     ErrorStatusNull = -1, // -1
  3.     ErrorStatusIp, // 0
  4.     ErrorStatusServer = 404, // 404
  5.     ErrorStatusServerip, //405
  6.     ErrorStatusEnd // 406
  7. }ErrorStatus
复制代码
回复 使用道具 举报
枚举的元素在没有指定值的枚举元素,其值为前一元素加1。假如第一个没有定义,那么第一个默认就是0,第二个值默认就是1.假如第一个指定了是7,那么么第二个值就是8.
  1. enum number{
  2.     AA,
  3.     aa,
  4.     BB = 4,
  5.     bb,
  6.     CC = 2,
  7.     cc
  8.    
  9. };

  10.         NSLog(@"%d",AA);
  11.         NSLog(@"%d",aa);
  12.         NSLog(@"%d",BB);
  13.         NSLog(@"%d",bb);
  14.         NSLog(@"%d",CC);
  15.         NSLog(@"%d",cc);
复制代码


上面的代码打印结果:
0
1
4
5
2
3
这个解释能明白了吗?
回复 使用道具 举报
周宇华 发表于 2014-3-31 14:53
枚举不特别说明的话是从0开始的;但是也可以给它赋一个初始值的。如:

是从0开始,但是加上0x40后打印出来的为什么从64开始
回复 使用道具 举报
脸皮猴 发表于 2014-3-31 15:03
枚举的元素在没有指定值的枚举元素,其值为前一元素加1。假如第一个没有定义,那么第一个默认就是0,第二个 ...

你说的我知道啊 ,能说下上面为什么第一个是64吗??
回复 使用道具 举报
于清扬 发表于 2014-3-31 15:09
你说的我知道啊 ,能说下上面为什么第一个是64吗??

是定义的啊,就是可以枚举也可以自己指定值的啊0x40是16进制的表示方法  就是10进制的64啊
回复 使用道具 举报
0x40计算机认为是16制的,你输出用的是%d,是十进制的,所以打出来就是64了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马