2009-10-03 3 views
1

При использовании iPhone Objective C, который принимает CGFloat s, например. [UIColor colorWithRed:green:blue:], важно добавить f к постоянным аргументам, чтобы явно указать их как float, например. должен ли я всегда вводить 0,1f вместо 0,1 в таких случаях? Или компилятор автоматически отбрасывает 0,1 (что обычно является двойным) до 0,1f (который является плавающей точкой) во время компиляции? Я не хочу, чтобы эти приведения происходили во время выполнения, потому что они не могли бы выполнять высокопроизводительную работу.Использование iPhone/Object C CGFloats: 0.1 хорошо, или должно быть 0,1f?

Заранее спасибо

MrMage

ответ

2

Это не важно; он ничего не сломает, чтобы использовать константу с двойной точностью, где ожидается постоянная константы.

Однако, если вы включили предупреждение о неявных преобразованиях с 64-битным в 32 бита и строите для 32-разрядных архитектур (которые, как я полагаю, включает в себя iPhone), тогда вы захотите использовать одиночные -precision константы просто, чтобы избежать получения этого предупреждения.

(В качестве альтернативы вы можете установить эту настройку в явном отключении, при этом условие архитектуры включается для 64-разрядных архитектур. Но в настоящее время имеет значение только в том случае, если вы также используете какой-то код в приложении Mac .)

+0

Я знаю, что ничего не сломается, но когда происходит преобразование из double в float? Во время компиляции (было бы хорошо) или во время выполнения (тогда я бы добавил f)? – MrMage

+4

Во время компиляции – philsquared

+0

Спасибо. Ваш комментарий - это реальный ответ на мой вопрос. +1 – MrMage

 Смежные вопросы

  • Нет связанных вопросов^_^