使用iPhone / Objective C CGFloats:0.1可以,还是0.1f?

时间:2009-10-03 10:49:56

标签: objective-c floating-point core-graphics double cgfloat

使用接受CGFloat s的iPhone Objective C方法时,例如[UIColor colorWithRed:green:blue:],将f附加到常量参数以将其明确指定为浮点数是很重要的,例如在这种情况下,我应该总是输入0.1f而不是0.1吗?或者编译器是否在编译时自动将0.1(一般为double)强制转换为0.1f(浮点数)?我不希望这些演员表在运行时发生,因为他们会不必要地提高性能。

提前致谢

MrMage

1 个答案:

答案 0 :(得分:2)

这不是重要的;在预期单精度常量的情况下,使用双精度常量不会破坏任何东西。

但是,如果您已打开有关隐式64位到32位转换的警告,并且正在构建32位架构(我认为包括iPhone),那么您将需要使用单个 - 精度常数只是为了避免得到那个警告。

(或者,您可以将该设置设置为显式关闭,其架构条件为64位体系结构启用。但当前仅在您使用某些代码时才有意义在Mac应用程序中。)