Безопасно ли reinterpret_cast целое число, чтобы плавать?
Примечание: я по ошибке спросил оstatic_cast
первоначально; Вот почему верхний ответ упоминаетstatic_cast
вначале.
У меня есть несколько двоичных файлов с байтовыми значениями с прямым порядком байтов. Я хочу читать их независимо от машины. Мои процедуры замены байтов (из SDL) работают с целыми типами без знака.
Безопасно ли просто разыгрывать между интами и поплавками?
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( val ); //XXX Is this safe?
}
Я хочу, чтобы это программное обеспечение было максимально переносимым.