0
modf
を使用せずに、double型の整数部分を抽出したいとします。 どちらが良いですかstatic_cast<int>(x)
または(int)x
?Static_castまたはCスタイルの型キャスト
modf
を使用せずに、double型の整数部分を抽出したいとします。 どちらが良いですかstatic_cast<int>(x)
または(int)x
?Static_castまたはCスタイルの型キャスト
プリミティブ型のフードの下では、どちらもまったく同じです。 int変数に代入するだけの場合は、自動的に変換されるので、キャストは必要ありません。私はそれが好みの問題だと思う。私は、プリミティブ(int)x
のCスタイルのキャストを使用しますが、C++クラスのタイプの場合は、継承のようなものを処理する必要があるstatic_castとdynamic_castなどを使用します。
コンパイラまたはシステムによって負の数値を扱う場合、この動作が矛盾する可能性があることに注意してください。つまり、-6.4が-6に切り捨てられたり、-7にプッシュダウンされる可能性があります。