【发布时间】:2023-01-13 19:40:41
【问题描述】:
我的结构包含两个字段:
struct ggg {
unsigned long long int a;
unsigned int b;
};
字段a 应为 8 个字节长,而b 字段应为 4 个字节长。
试图将其转换为字节数组:
unsigned char c[8 + 4] = { 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
0x03, 0x00, 0x00, 0x00, };
ggg* g = (ggg *)c ;
char tt[1024];
sprintf(tt, "a=%d b=%d ", g->a, g->b);
在 tt 字符串中得到结果:
a=1 b=2
看起来在投射 a 时只需要 4 个字节而不是 8 个字节。为什么?
【问题讨论】:
标签: visual-c++