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<float &>( val ); //XXX Is this safe?
}
我希望这个软件尽可能便携。