Примечание. Я ошибочно спросил о static_cast
изначально; поэтому в верхнем ответе сначала упоминается static_cast
.
У меня есть несколько двоичных файлов с небольшими значениями значений по умолчанию. Я хочу прочитать их машинно-независимым образом. Мои байтовые подпрограммы (из 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?
}
Я хочу, чтобы это программное обеспечение было максимально переносимым.