通过联合体判断计算机的大小端,如果是小端返回1,大端返回0
时间: 2024-02-25 08:54:33 浏览: 76
基于C语言的联合体判断大小端设计源码
可以通过以下C语言代码判断计算机的大小端:
```c
int check_endian() {
union {
int i;
char c[sizeof(int)];
} u;
u.i = 1;
return (u.c[0] == 1);
}
```
该函数创建了一个联合体,包含一个整型变量和一个字符数组。整型变量的值为1,即二进制的00000001。在小端系统中,该整型变量在内存中的存储方式为01 00 00 00,所以字符数组u.c中的第一个元素为1;而在大端系统中,该整型变量在内存中的存储方式为00 00 00 01,所以字符数组u.c中的最后一个元素为1。因此,通过判断u.c[0]的值是否为1,可以判断计算机的大小端。如果返回值为1,则为小端系统;如果返回值为0,则为大端系统。
阅读全文