与Java不同,objc中的Long是用来修饰其他类型的,比如

long int

如果直接把限定词long放在int声明之前,那么所声明的整型变量在某些计算机上具有扩展的值域。例子如下:

[objc] long int factorial; [/objc]

就像float和double变量一样,long变量的具体精度也是由具体的计算机系统决定的。在许多系统上,int与long int具有相同的值域,而且任何一个都能存储32位宽的整型值。

long int 类型的常量值可通过在整型变量末尾添加字母L(大小写均可)来形成。但数字和L之间不允许有空格。例如:

[objc] long int numberOfPoints = 131071100L; [/objc]

要用NSLog显示long int的值,使用字母l作为修饰符并放在整型格式符号i、o和x之前。这意味着格式符号%li用十进制格式显示long int的值。%lo用八进制显示。%lx用十六进制格式显示。

long long

[objc] long long int maxAllowedStorage; [/objc]

这条语句把将指定的变量声明为具有特定扩展精度的变量,该扩展精度保证变量至少具有64位的宽度。NSLog字符串表示方法为%lli。使用两个l。

long double

[objc] long double US_deficit_2004; [/objc]

long double常量可写成其尾部带有字母l或L的浮点常量,如下:

[objc] 1.234e+7L [/objc]

要显示long double 的值,需要使用修饰符L。因此,%Lf表示用浮点计数法显示,%Le用科学计数法显示,而%Lg表示用上述两种中任选一种表示。

short int

short int 用来告诉objective-c编译器要声明的特定变量用来存储相当小的整数。之所以使用short变量,主要原因是对节约内存空间的考虑,当程序员需要大量内存而可用的内存量又十分有限时,就可以用short变量来解决这个问题。

在某些计算机上,short int 占用的内存空间是常规int变量所占空间的一半。在任何情况下,确保分配给short int的空间数量不少于16位。

在objective-c中,没有其他方法可显式地编写short int 型常量。要显示short int变量,可将字母h放在任何普通的整型转换符号之前,例如:%hi,%ho或者%hx。

unsigned int

[objc] unsigned int counter; [/objc]

向编译器声明:变量counter只用于保存正值。通过限定整型变量的使用,使它专门存储正整数,可以扩展整型变量的精度。

声明unsigned类型常量,需要在值后添加u(U)。例如:

[objc] 0x00ffU [/objc] [objc] 20000UL [/objc]

如果整型常量之后不带有字母u、U、l或L中的任何一个,而且它太大以至于不适合用普通大小的int表示,那么编译器将把它看作unsinged int。如果unsinged int大小任然不适合,那么就作为long int。如果任然不适合,就使用unsigned long int。以此类推。

将变量声明为long int、short int或unsigned int类型时,关键字int可省略。比如:

[objc] unsigned counter; [/objc]

同样可将char变量声明为unsigned。

singed限定词可以明确地告诉编译器特定变量是否有符号的。它主要用在char声明前面。