Ios 哪个苹果硬件/操作系统是32位CGFloat,哪个是64位CGFloat?

Ios 哪个苹果硬件/操作系统是32位CGFloat,哪个是64位CGFloat?,ios,macos,floating-point,cgfloat,Ios,Macos,Floating Point,Cgfloat,在某些情况下,为应用程序选择正确的浮点类型可能很重要,而且在ios/osx上,您似乎被推向了使用CGFloat的方向 CGFloat是本机浮点类型,但我无法找到32位或64位设备的良好摘要(我担心首行指定可能是整数单元或地址总线,可能与FP单元不同) 此外,我假设所有硬件都支持双FP,尽管性能低于本机64位单元 据推测,O/S是不相关的,因为这只适用于地址空间的使用(如果我错了,请纠正我)。苹果A7芯片首次引入了对64位体系结构的支持,这意味着第一个支持64位的设备是iPhone 5S。第一个支

在某些情况下,为应用程序选择正确的浮点类型可能很重要,而且在ios/osx上,您似乎被推向了使用
CGFloat
的方向

CGFloat
是本机浮点类型,但我无法找到32位或64位设备的良好摘要(我担心首行指定可能是整数单元或地址总线,可能与FP单元不同)

此外,我假设所有硬件都支持双FP,尽管性能低于本机64位单元


据推测,O/S是不相关的,因为这只适用于地址空间的使用(如果我错了,请纠正我)。

苹果A7芯片首次引入了对64位体系结构的支持,这意味着第一个支持64位的设备是iPhone 5S。第一个支持它的iOS版本是iOS 7


也就是说,我真的不明白为什么它与哪个设备/操作系统有关。您的代码应该只正确处理32位/64位
CGFloat
在32位系统上是4个字节,在64位系统上是8个字节,这是唯一需要考虑的因素。

在其他语言中,开发人员根据精度要求选择单FP或双FP,但在这里,默认情况下Apple会将其从您手中夺走。有时候,你可能想收回这个决定,所以最好知道发生了什么,并澄清一些困惑。例如,您暗示iOS 7是第一个64位浮动的O/S,但是这样还是第一个64位地址空间的O/S?iOS 7是第一个64位地址空间的iOS版本,因此是第一个64位浮动的iOS版本。如果您想要更多的控制,只需使用“float”和“double”,这在32位/64位系统中是一致的(与CGFloat不同)。否则,我不确定我是否完全理解你的问题。你评论中的“因此”一词是不正确的。地址的大小和浮点单元的大小之间不一定有联系。可能不一定是真的,但在iOS的情况下是真的(据我所知)。如果你不知道,请分享。不,我不知道。这就是我问这个问题的原因:-)。谢谢你的意见。