使用 union 判断系统大小端
- 大小端介绍
- 字节序
- 内存布局
- 小端
- 大端
- 确定大小端的方法
- union
- 指针
大小端介绍
字节序
内存布局
栈空间向低地址生长,堆空间向高地址生长。
小端
大端
确定大小端的方法
union
#include <stdio.h>// 定义一个联合体,包含一个字节序列和一个整数
union EndianCheck {int num;char bytes[sizeof(int)];
};int main() {union EndianCheck check;// 初始化整数值为1,这样在内存中的二进制表示会有一个字节为1,其余为0check.num = 1;// 根据bytes数组的第一个元素是否为1来判断是大端还是小端if (check.bytes[0] == 1) {printf("当前系统是小端模式(Little-Endian)\n");} else {printf("当前系统是大端模式(Big-Endian)\n");}return 0;
}