Lưu ý: Tôi đã hỏi nhầm về số static_cast
ban đầu; đây là lý do tại sao câu trả lời hàng đầu đề cập đến số static_cast
lúc đầu.Có an toàn để reinterpret_cast một số nguyên để nổi không?
Tôi có một số tệp nhị phân có ít giá trị float cuối cùng. Tôi muốn đọc chúng một cách độc lập với máy. Các thường trình hoán đổi byte của tôi (từ SDL) hoạt động trên các kiểu số nguyên không dấu.
Có an toàn để chỉ đơn giản là cast giữa ints và phao nổi?
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?
}
Tôi muốn phần mềm này càng đơn giản càng tốt.
Bạn chỉ có thể 'reinterpret_cast' thành con trỏ hoặc các loại tham chiếu; mã bạn đã đăng sẽ không biên dịch. – Praetorian
Bạn có thể có nghĩa là một cái gì đó như float result = reintrepret_cast (val); –
Rất tiếc. Tôi thực sự nên đã cố gắng để biên dịch đầu tiên:/ – QuasarDonkey