2009-10-03 39 views
1

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

在此先感谢

MrMage

回答

2

这不是重要;它不会破坏任何使用双精度常量的地方,其中单精度常数是预期的。但是,如果您打开了有关隐式64位到32位转换的警告,并正在为32位体系结构(我认为其中包含iPhone)进行构建,则您需要使用单个精确的常量只是为了避免发出警告。

(或者,您可以将该设置设置为明确关闭,并使用64位体系结构的体系结构启用此设置。但是,当前仅在您的Mac应用程序中使用某些代码时才重要)

+0

我知道没有什么能够中断,但是什么时候发生从double到float的转换?在编译时(会很好)或在运行时(然后我会添加f)? – MrMage 2009-10-03 11:06:51

+4

在编译时 – philsquared 2009-10-03 11:24:28

+0

谢谢。您的评论是我的问题的真正答案。 +1 – MrMage 2009-10-04 11:21:07