注:私は誤っておおよそstatic_cast
を尋ねました。これは、最初に回答がstatic_cast
と記載されている理由です。floatする整数を再解析しても安全ですか?
リトルエンディアンの浮動小数点値を持つバイナリファイルがあります。私はそれらを機械に依存しない方法で読みたいと思う。私のバイトスワップルーチン(SDLから)は、符号なし整数型で動作します。
intとfloatの間を単純にキャストするのは安全ですか?
float read_float() {
// Read in 4 bytes.
Uint32 val;
fread(&val, 4, 1, fp);
// Swap the bytes to little-endian if necessary.
val = SDL_SwapLE32(val);
// Return as a float
return reinterpret_cast<float &>(val); //XXX Is this safe?
}
私はこのソフトウェアをできるだけポータブルにします。
ポインタ型または参照型に対してのみ 'reinterpret_cast'を実行できます。投稿したコードはコンパイルされません。 – Praetorian
おそらくfloat result = reintrepret_cast(val)のようなものです。 –
私は本当に最初にコンパイルしようとしていたはずです:/ – QuasarDonkey