Использование iPhone / Objective C CGFloats: 0,1 нормально или должно быть 0,1f? - PullRequest
1 голос
/ 03 октября 2009

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

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

MrMage

1 Ответ

2 голосов
/ 03 октября 2009

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

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

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

...