69,371
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include <memory.h>
#pragma pack(1)
struct tagData
{
char a;//正确的值应为0x01
int b;//正确的值应为0x050x040x030x02即05040302 = 十进制84148994
short c;//正确值0x070x06即706 = 十进制1798
};
#pragma pack()
int main()
{
unsigned char arrByte[] = { 0x01,0x02,0x03,0x04,0x05,0x06,0x07 };
int len = 7;
tagData data;
memcpy((unsigned char*)&data,arrByte,len);
printf("%d\n",data.a); // 1
printf("%d\n",data.b); // 84148994
printf("%d\n",data.c); // 1298
return 0;
}