reinterpret_cast double to char *

时间:2013-12-12 22:31:02

标签: c++ char double reinterpret-cast

如何重新解释从double转换为char *(我需要它以文件形式存储double的数据)。下面是代码,我不知道为什么它不起作用:

#include <iostream>
int main(int argc, char **argv)
{
    const double tmpDouble = 1234.;
    char *tmpChar = reinterpret_cast<char*>(tmpDouble);
    return 0;
}

1 个答案:

答案 0 :(得分:4)

如果你有什么工作,它可能不是你想要的 - 指针的值只是1234 - 有效地指向可能包含任何东西的地址(不是它可以访问)。

如果你只想要二进制格式的double,你可以做

const byte* pDouble = reinterpret_cast<const byte*>(&tmpDouble);
//                                      |
//                             note the address here

但首先要检查你用来写一个函数原型的文件,直接接受double