可能有重复:
小端与大端:如何解释测试结果
小端与大端:如何解释测试结果
是否有一种简便的方法可以使用gcc或类似ideone的在线编译器来测试大端代码?我不想使用qemu或虚拟机。
编辑
有人能解释一下在使用大端系统时此段代码的行为吗?
#include <stdio.h>
#include <string.h>
#include <stdint.h>
int main (void)
{
int32_t i;
unsigned char u[4] = {'a', 'b', 'c', 'd'};
memcpy(&i, u, sizeof(u));
printf("%d\n", i);
memcpy(u, &i, sizeof(i));
for (i = 0; i < 4; i++) {
printf("%c", u[i]);
}
printf("\n");
return 0;
}
endian.h
并尝试类似这样的代码if __BYTE_ORDER == __LITTLE_ENDIAN
- Eddy_Em