35

我需要将 NSInteger 的最大值存储到 NSInteger 中吗?正确的语法是什么?

谢谢。

4

4 回答 4

92

NSInteger 的最大值是NSIntegerMax

于 2011-01-25T23:31:06.683 回答
13

NSInteger 的最大值是 NSIntegerMax

(来自基础常量参考

于 2011-01-25T23:31:53.940 回答
4

对于 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

于 2017-07-11T17:17:26.630 回答
2

我花了一点时间才意识到为什么在使用 NSUInteger 时我得到的值与 NSIntegerMax 不同!

NSUInteger 的最大值是 NSUIntegerMax

(也来自http://developer.apple.com/library/ios/#documentation/cocoa/reference/foundation/Miscellaneous/Foundation_Constants/Reference/reference.html

于 2013-07-19T13:33:53.240 回答