0
我有一个64位的设备上运行下面的代码:将CGFloat设置为double是否安全?
CGFloat myFloat = 123.45f;
CGFloat myDouble = 123.45;
跨32位和64位器件这样安全吗?由于CGFloat根据处理器体系结构更改大小,给定的变量是否会在两个平台上包含接近123.45
的值,或者是否会由于位错误放置而导致它们炸毁?
这两件事情能发生吗?
在64位:
myFloat == 0x0000000042F6E666 == 5.5507143600000000e-315
myDouble == 0x405EDCCCCCCCCCCD == 123.45
在32位:
myFloat == 0x42F6E666 == 123.45
myDouble == 0xCCCCCCCD == -1.0737418e8
现在,我还没有在场上看到了这一点尚未...它派生我的其他问题: 为什么我在现场看不到这个问题?