Frage

Kann jemand erklären, warum dies bewirkt, dass der Fehler in der Überschrift angegeben?

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

Danke

War es hilfreich?

Lösung

fabs() gibt eine double (64-Bit), aber CGFloat ist definiert als ein float (32-Bit) zu sein. Es ist in der Regel harmlos - ich persönlich würde sogar die Compiler Warnung abzuschalten, als Berechnungen mit double Wert Durchführung ist in der Regel mindestens so schnell wie float Werten mit

.

Andere Tipps

Eine bessere Antwort ist #include <tgmath.h> zu verwenden. Dass die Header definiert „adaptive“ Funktionen, die die korrekte Funktion auf welchem ??Parameter Größe nennen.

Mit diesem Header enthalten, können Sie einfach fabs aufrufen, ohne diese Warnung zu bekommen (noch sich Gedanken über Genauigkeitsverlust durch die Verwendung der falschen Funktion verursacht werden).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top