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.

questionAnswers(2)

yourAnswerToTheQuestion