NSInteger的最大值是多少?

时间:2011-01-25 23:28:41

标签: cocoa nsinteger

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

感谢。

4 个答案:

答案 0 :(得分:88)

NSInteger的最大值为NSIntegerMax

答案 1 :(得分:13)

NSInteger的最大值为NSIntegerMax

(来自Foundation Constants Reference

答案 2 :(得分:1)

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

NSUInteger的最大值是NSUIntegerMax

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

答案 3 :(得分:1)

对于32位& 64位,有两个约定: 一)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 宏。

enter image description here

对于NSInteger的64位最大范围是:LONG_MAX:9223372036854775807