TLDR: 警告なしで 32 ビットと 64 ビットの両方の CGFloats をコンパイルする方法で、標準の浮動小数点コードを呼び出すにはどうすればよいですか?
CGFloat は、コンパイラの設定とプラットフォームに応じて、double または float として定義されます。多くの警告を生成することなく、両方の状況でうまく機能するコードを書こうとしています。
floor、abs、ceil、およびその他の単純な浮動小数点演算などの関数を使用すると、値が切り捨てられるという警告が表示されます。例えば:
警告: 暗黙的な変換により、64 ビット値が 32 ビット値に短縮されます
すべての関数の倍精度バージョン (floorf の代わりに floor など) を常に使用できることを認識しているため、計算の正確性や精度の低下については心配していません。ただし、これらのエラーを許容する必要があります。
多くの #ifdef __ LP64 __ を使用したり、すべての標準浮動小数点関数のラッパー関数を記述したりすることなく、32 ビットと 64 ビットの両方の浮動小数点数をサポートするコードをきれいに記述する方法はありますか?