暗黙的な変換は64ビットを32ビットに短縮します
-
10-10-2019 - |
質問
これがタイトルに記載されているエラーを引き起こす理由を誰かが説明できますか?
CGFloat dx = fabs(lastPoint.x - currentPoint.x);
ありがとう
解決
fabs()
返品a double
(64ビット)、しかし CGFloat
と定義されています float
(32ビット)。それは一般的に無害です - 私は個人的にコンパイラ警告を無効にします。 double
値は通常です 少なくとも 使用するのと同じくらい速い float
値。
他のヒント
より良い答えは、使用することです #include <tgmath.h>
. 。そのヘッダーは、パラメーターサイズの正しい関数を呼び出す「適応」関数を定義します。
そのヘッダーを含めると、単に電話することができます fabs
その警告を取得せずに(間違った関数の使用によって引き起こされる精度の喪失について心配することもありません)。
所属していません StackOverflow