gpt4 book ai didi

c++ - 在文件可移植性问题中存储 32 位 float

转载 作者:太空狗 更新时间:2023-10-29 23:47:13 25 4
gpt4 key购买 nike

如果我通过这段代码在文件中存储一个 float

fwrite((void*)(&v), sizeof(v), 1, f); // v is a float.

使用此代码读取文件的程序多久会因为 float 是 8 个字节而不是 4 个字节而导致运行时错误?

float v;
fread((void*)(&v), sizeof(v), 1, f);
return v;

我能否始终读取 4 个字节并将其转换为 8 个字节的 float ?这样会更便携吗?

强调 64 位与 32 位的不同 Windows 平台。

最佳答案

我不太担心 float 的大小,而更担心它的字节顺序。我会说绝大多数 C++ 实现使用 IEEE 754,这意味着 float 总是 32 位和双 64 位。

您可能希望只序列化值的文本表示,或者特别注意确保字节顺序正确。

关于c++ - 在文件可移植性问题中存储 32 位 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6715545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com