我有一个下面类型的简单C程序 上述程序的输出在Big endian机器上如下所示: 二进制0x7ffc1206abc0中的结构:0xef120d0c0b0a 仅打印成员0x7ffc1206abc4:0xef12 问题是,为什么结构的原始输出按其成员值的相反顺序排列? '成员e'的地址距离结构基地址的开头还有4个字节。.#include<stdio.h>
struct test{
char a;
char b;
char c;
char d;
int e;
};
void main() {
struct test mem = {0xa, 0xb, 0xc, 0xd, 0xef12};
long int *tmp = (long int *)(&mem.a);
printf("Struct in binary %p : 0x%lx\n", &mem.a, *tmp);
printf("Printing only a member %p : 0x%x\n", &(mem.e), *(int *)(&(mem.e)));
}
0 个答案:
没有答案