Objective-C程序是否可以编译为int为64位?

Objective-C程序是否可以编译为int为64位?,objective-c,c,xcode,Objective C,C,Xcode,如果我没记错的话,在某些机器上,int是16位的,当我们移动到32位平台上时,int是32位的 既然Snow Leopard和Lion是64位的,那么可以在Xcode上编译C或Objective-C程序,使int是64位的吗?而%d或%i也将采用64位整数。或者出于兼容性原因,int是否保留为32位 如果使用64位int,它会比32位更快吗,因为64位是本机的 更新:我刚刚发现,如果Lion上的Xcode在控制台应用程序中打印的sizeofNSInteger是8,那么它的长度是typedef,如

如果我没记错的话,在某些机器上,int是16位的,当我们移动到32位平台上时,int是32位的

既然Snow Leopard和Lion是64位的,那么可以在Xcode上编译C或Objective-C程序,使int是64位的吗?而%d或%i也将采用64位整数。或者出于兼容性原因,int是否保留为32位

如果使用64位int,它会比32位更快吗,因为64位是本机的

更新:我刚刚发现,如果Lion上的Xcode在控制台应用程序中打印的sizeofNSInteger是8,那么它的长度是typedef,如果它在iOS 5.1.1上,那么它的长度是4,而在两种平台上,它的长度都是4。所以从某种程度上看,int以前是从16位移动到32位的,但现在我们确实想把它停在32位。

在苹果采用的LP64数据模型下,int永远是32位的。某些编译器可能允许您使用ILP64数据模型,如注释中所述。但是,您可能会破坏与预编译库的兼容性。

在苹果采用的LP64数据模型下,int总是32位。某些编译器可能允许您使用ILP64数据模型,如注释中所述。但是,您可能会破坏与预编译库的兼容性

C或Objective-C程序是否可以在Xcode上编译,使int为64位

我一直找不到一个能使int宽64位的叮当选项。事实上,平台标题似乎认为它不可能。此外,您将无法使用任何将int作为参数的平台库函数/方法,该参数包括在格式字符串中指定int类型的printf之类的内容

如果使用64位int,它会比32位更快吗,因为64位是本机的

我看不出为什么使用32位整数比使用64位整数慢。事实上,它们可能更快,因为您可以在缓存中容纳两倍数量的缓存

C或Objective-C程序是否可以在Xcode上编译,使int为64位

我一直找不到一个能使int宽64位的叮当选项。事实上,平台标题似乎认为它不可能。此外,您将无法使用任何将int作为参数的平台库函数/方法,该参数包括在格式字符串中指定int类型的printf之类的内容

如果使用64位int,它会比32位更快吗,因为64位是本机的


我看不出为什么使用32位整数比使用64位整数慢。事实上,它们可能更快,因为您可以在缓存中容纳两倍数量的缓存

要获得int=64位的编译器,您必须下载Clang源代码并手动修改。因此,对于现有的gcc或Clang编译器,没有办法


但是int为32位有一个很好的理由:出于兼容性的原因,很多代码需要8位、16位、32位和64位的项。C中可用的类型有char、short、int、long和long。您不希望long或long-long小于int。如果int=64位,您只有两种类型char和short,分别代表3种大小8、16和32位,因此您必须放弃其中一种

要获得int=64位的编译器,您必须下载Clang源代码并手动修改。因此,对于现有的gcc或Clang编译器,没有办法


但是int为32位有一个很好的理由:出于兼容性的原因,很多代码需要8位、16位、32位和64位的项。C中可用的类型有char、short、int、long和long。您不希望long或long-long小于int。如果int=64位,您只有两种类型char和short,分别代表3种大小8、16和32位,因此您必须放弃其中一种

一,。你可以用长时间;2.阅读本文了解更多信息:您可能也会获得一些很好的洞察力;如果要强制整数具有一定数量的位,则必须显式使用保证所需大小的类型。1。你可以用长时间;2.阅读本文了解更多信息:您可能也会获得一些很好的洞察力;如果要强制整数具有一定数量的位,则必须显式使用保证所需大小的类型。在64位上,32位无符号整数肯定比64位无符号长整数慢。原因是对于无符号32位,0xffffffff+1==0。因此,如果i是无符号32位整数,则不能保证大型数组的[i+1]是[i]之后的数组元素,这会破坏许多优化。在64位上,32位无符号整数肯定比64位无符号长整数慢。原因是对于无符号32位,0xffffffff+1==0。因此,不能保证对于大型阵列,a[i+1]是 如果i是无符号32位整数,则[i]后面的数组元素会破坏许多优化。