Czy można bezpiecznie reinterpretować_wydanie liczby całkowitej do float?
Uwaga: omyłkowo zapytałem o tostatic_cast
pierwotnie; Dlatego właśnie wspomniano o najwyższej odpowiedzistatic_cast
najpierw.
Mam kilka plików binarnych z małymi wartościami float endian. Chcę je przeczytać w sposób niezależny od maszyny. Moje procedury wymiany bajtów (z SDL) działają na typach liczb całkowitych bez znaku.
Czy po prostu można rzucać między intami i floatami?
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?
}
Chcę, aby to oprogramowanie było jak najbardziej przenośne.