c语言练习题52:写一个函数判断当前机器是大端还是小端

代码:

方法1:

#include<stdio.h>
int check_sys() {
	int a = 1;
	return *(char*)&a;//小端retrun 1 大端return 0;
}
int main() {
	if (check_sys() == 1) {
		printf("小端\n");
	}
	else
		printf("大端\n");
}

方法2(利用联合体):

int check_sys() {
	union
	{
		char c;
		int i;
	}u;
	u.i = 1;
	return u.c;
}
int main() {
	if (check_sys() == 1)
		printf("小端\n");
	else
		printf("大端\n");
	return 0;
}

这里首先取a的地址,强制转换成char*之后再解引用,也就是将a地址的第一个字节取出来看值了。参考上面的表格,如果是小端存储,那么a地址里的第一个字节就是01,否则是00。这样就实现了大小端的判断。

理解大小端字节序:

 

大小端字节序指的是数据在电脑上存储的字序节顺

猜你喜欢

转载自blog.csdn.net/2301_77479435/article/details/132837674
今日推荐