注:最初に間違って尋ねまし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?
}
私は、このソフトウェアを可能な限りポータブルにしたいと考えています。