如何重新解释从double转换为char *(我需要它以文件形式存储double的数据)。下面是代码,我不知道为什么它不起作用:
#include <iostream>
int main(int argc, char **argv)
{
const double tmpDouble = 1234.;
char *tmpChar = reinterpret_cast<char*>(tmpDouble);
return 0;
}
答案 0 :(得分:4)
如果你有什么工作,它可能不是你想要的 - 指针的值只是1234
- 有效地指向可能包含任何东西的地址(不是它可以访问)。
如果你只想要二进制格式的double
,你可以做
const byte* pDouble = reinterpret_cast<const byte*>(&tmpDouble);
// |
// note the address here
但首先要检查你用来写一个函数原型的文件,直接接受double
。