Objective-C编程:从基础到64位过渡与高级特性
1. 64位编程概述
在过去几十年里,微处理器寄存器的大小从4位增长到32位,如今正处于从32位向64位处理器过渡的阶段。对于Java和Objective - C程序员来说,这一转变带来了新的内存容量和性能提升的潜力。
1.1 变量大小变化
大多数情况下,使用Objective - C类、方法和属性进行编程时,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 stringW
超级会员免费看
订阅专栏 解锁全文

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



