为什么丢失了前半部分数据?
今天实验memcpy功能.用了如下代码,对32位没问题,但用64位的"__int64"时结果就不和设想的.
#include <string.h>
#include <stdio.h>
const __int64 i512[8] =
{
0x6a09e667f3bcc908, 0xbb67ae8584caa73b,
0x3c6ef372fe94f82b, 0xa54ff53a5f1d36f1,
0x510e527fade682d1, 0x9b05688c2b3e6c1f,
0x1f83d9abfb41bd6b, 0x5be0cd19137e2179
};
main()
{
__int64 p[8];
memcpy(p, i512, 64);
for (int i=0;i<8;i++) {
printf(" %x ",p[i]);
}
return 0;
}
---------
输出结果是
f3bcc908 84caa73b fe94f82b 5f1d36f1 ade682d1 2b3e6c1f fb41bd6b 137e2179
什么原因?如何将所有数据拷贝到P里?