Вопрос

Может ли кто -нибудь объяснить, почему это вызывает ошибку, указанную в заголовке?

CGFloat dx = fabs(lastPoint.x - currentPoint.x);

Спасибо

Это было полезно?

Решение

fabs() Возвращает а double (64-бит), но CGFloat определяется как float (32-битный). Как правило, это безвредно - лично я бы даже отключил предупреждение компилятора, как вычисляющие расчеты с использованием double Значения обычно как минимум так же быстро, как использование float ценности.

Другие советы

Лучший ответ - использовать #include <tgmath.h>. Анкет Этот заголовок определяет «адаптивные» функции, которые называют правильную функцию по любому размеру параметра.

С этим заголовком вы можете просто позвонить fabs Не получая этого предупреждения (не беспокоясь о потере точности, вызванной использованием неправильной функции).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top