【发布时间】:2014-01-10 15:49:49
【问题描述】:
我不确定这是否正确,我已经对其进行了测试,似乎有些字节已关闭... 基本上,我有以下几点:
unsigned char szBuffer[1024] = {0};
long long nValue = 1334553536;
memcpy(szBuffer, (char*)&nValue, sizeof(long long));
//
long long nNewValue = reinterpret_cast<long long>(szBuffer);
printf(nNewValue); //prints out a smaller number than previously stated
有人介意指出我哪里出错了吗?谢谢。
【问题讨论】:
-
printf的第一个参数是格式字符串;printf(rNewValue)可能无法编译。请贴出真实代码。 -
原来是std::cout,但后来我意识到我不小心添加了C标签,所以我把它改成了printf(),没有考虑它是否会编译。这只是一个微小的变化。其余的编译。
-
C 标签不再存在。再次,请发布真实代码,从您实际编译的内容中复制并粘贴。如果您知道代码中的哪些错误是相关的,则无需提出问题。 sscce.org
-
我不是根据它是否编译来问问题。我的问题是运行时的逻辑错误。但我明白你的意思,我会考虑的。我拥有的代码包含来自其他库的部分,与我的实际问题无关。因此,我试图保持简单。感谢您的关心。
-
是的,如果可以的话,你绝对应该简化代码并删除对外部库的依赖,但如果你不是在询问编译时错误,那么你发布的代码需要编译和运行。试图帮助您的人可能需要复制并粘贴您的代码并自己尝试(就像我一样)。你读过sscce.org吗?
标签: c++ casting unsigned-char long-long