Ist es sicher, eine Ganzzahl neu zu interpretieren, um zu schweben?

Hinweis: Ich habe fälschlicherweise gefragtstatic_cast ursprünglich; Aus diesem Grund wird in der oberen Antwort erwähntstatic_cast zu Beginn.

Ich habe einige Binärdateien mit Little-Endian-Float-Werten. Ich möchte sie maschinenunabhängig lesen. Meine Byte-Swap-Routinen (von SDL) arbeiten mit Ganzzahlentypen ohne Vorzeichen.

Ist es sicher, einfach zwischen Ints und Floats zu werfen?

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?
}

Ich möchte, dass diese Software so portabel wie möglich ist.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage