- 利用union
#include <stdio.h>
int main() {
union {
short int value;
char b[sizeof(short int)];
} tmp;
tmp.value = 0x1234;
printf("b[0] = 0x%x, b[1] = 0x%x\n", tmp.b[0], tmp.b[1]);
return 0;
}
低位字节在放在低地址即小顶端,高位字节放在低地址即大顶端
输出b[0] = 0x34, b[1] = 0x12,所以机器是小顶端
网络传输都是大顶端
- 利用objdump
int a = 0x12345678;
int main() {
...
}
定义一个初始化过的全局变量,会被分配到.data区。
gcc -c demo.c
objdump -s demo.o
查看.data区,发现0x78563412即是小顶端