<分区>
我如何重新解释从 double 到 char* 的转换(我需要它以字节为单位存储文件中 double 的数据)。下面是代码,我不知道为什么它不起作用:
#include <iostream>
int main(int argc, char **argv)
{
const double tmpDouble = 1234.;
char *tmpChar = reinterpret_cast<char*>(tmpDouble);
return 0;
}
<分区>
我如何重新解释从 double 到 char* 的转换(我需要它以字节为单位存储文件中 double 的数据)。下面是代码,我不知道为什么它不起作用:
#include <iostream>
int main(int argc, char **argv)
{
const double tmpDouble = 1234.;
char *tmpChar = reinterpret_cast<char*>(tmpDouble);
return 0;
}
最佳答案
如果你在那里工作,它可能不是你想要的 - 指针的值只是 1234
- 有效地指向可能包含任何东西的地址(不是它可以访问) .
如果你只是想要二进制格式的double
,你可以这样做
const byte* pDouble = reinterpret_cast<const byte*>(&tmpDouble);
// |
// note the address here
但首先检查您使用什么来写入文件,以查找直接采用 double
的函数原型(prototype)。
关于c++ - 将 double 重新解释为 char*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20555624/