我需要将 NSInteger 的最大值存储到 NSInteger 中吗?正确的语法是什么?
谢谢。
NSInteger 的最大值是NSIntegerMax。
NSInteger 的最大值是 NSIntegerMax
(来自基础常量参考)
对于 32 位和 64 位,有两种约定:a)ILP32 b)LP64
32 位运行时使用称为 ILP32 的约定,其中整数、长整数和指针是 32 位数量。64 位运行时使用 LP64 约定;整数是 32 位的量,长整数和指针是 64 位的量。这些约定与在 OS X 上运行的应用程序的 ABI 相匹配(类似地,Cocoa Touch 约定与 Cocoa 中使用的数据类型相匹配),从而可以轻松编写两个操作系统之间的互操作代码。
表 1-1 Objective-C 代码中常用的所有整数类型。每个条目都包含数据类型的大小及其在内存中的预期对齐方式。突出显示的表条目表示 LP64 约定与 ILP32 约定不同的地方。这些大小差异表明在为 64 位运行时编译时代码行为发生变化的地方。编译器在为 64 位运行时编译时定义了LP64宏。
对于 NSInteger 的 64 位最大范围是:LONG_MAX:9223372036854775807
我花了一点时间才意识到为什么在使用 NSUInteger 时我得到的值与 NSIntegerMax 不同!
NSUInteger 的最大值是 NSUIntegerMax