Objective-C编程:从基础到高级应用
1. 64位编程概述
随着时间推移,微处理器寄存器大小从4位增长到32位,如今正处于从32位向64位处理器过渡的阶段。对于Java和Objective - C程序员来说,这一转变带来了新的内存容量和性能提升的潜力。
1.1 变量大小变化
大多数整数类型的大小在32位和64位架构中保持不变,但部分类型有变化,如下表所示:
| 类型 | 32位大小 | 64位大小 |
| — | — | — |
| char | 1字节 | 1字节 |
| short | 2字节 | 2字节 |
| int | 4字节 | 4字节 |
| long | 4字节 | 8字节 |
| NSInteger | 4字节 | 8字节 |
| pointer | 4字节 | 8字节 |
| long long | 8字节 | 8字节 |
long int在32位架构中为32位长,在64位架构中为64位长。NSInteger(和NSUInteger)类型等同于long int。Objective - C的集合类大多使用NSUInteger来计数和定位元素,这使得64位架构中的集合可以包含超过4,294,967,296个元素,而这在32位处理器的地址空间中是无法实现的。
1.2 格式字符串说明符
常见的错误是使用错误的格式字符串说明符来格式化int值。例如, [NSString stringWithFormat:@"%d",(NSInteger)x] 在编译为64位时将无法正常工作,因
超级会员免费看
订阅专栏 解锁全文
74

被折叠的 条评论
为什么被折叠?



