【问题标题】:Using iPhone/Objective C CGFloats: Is 0.1 okay, or should it be 0.1f?使用 iPhone/Objective C CGFloats:0.1 可以吗,还是应该是 0.1f?
【发布时间】:2009-10-03 10:49:55
【问题描述】:

当使用接受CGFloats 的 iPhone Objective C 方法时,例如@ 987654322@,将 f 附加到常量参数以将它们显式指定为浮点数是否重要,例如在这种情况下,我应该总是输入 0.1f 而不是 0.1 吗?还是编译器会在编译时自动将 0.1 (通常是双精度数)转换为 0.1f (浮点数)?我不希望在运行时发生这些转换,因为它们会不必要地占用性能。

提前致谢

魔法师

【问题讨论】:

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


    【解决方案1】:

    这不重要;在需要单精度常量的地方使用双精度常量不会破坏任何东西。

    但是,如果您已打开有关隐式 64 位到 32 位转换的警告并且正在构建 32 位架构(我相信包括 iPhone),那么您将希望使用单精度常量只是为了避免收到该警告。

    (或者,您可以将该设置显式设置为关闭,并在架构条件下为 64 位架构将其打开。但目前仅在您还使用某些代码时才重要在 Mac 应用程序中。)

    【讨论】:

    • 我知道没有任何问题,但是从 double 到 float 的转换何时发生?在编译时(会很好)还是在运行时(然后我会添加 f)?
    • 谢谢。您的评论是我问题的真正答案。 +1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    • 1970-01-01
    • 2020-10-24
    • 2011-11-05
    相关资源
    最近更新 更多