写一个函数判断存储空间是大端还是小端

本文介绍了如何通过指针法和联合共用体法判断计算机存储空间的端序(大端或小端)。提供了具体的C语言代码示例,并展示了运行结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

判断存储空间是大端还是小端

我们常用的x86结构都是小端模式,而大部分DSP,ARM也是小端模式,不过有些ARM是可以选择大小端模式。所以对于上面的maxHeight是应该以小端模式来存放,具体情况请看下面两表。
小端模式:


大端模式:


通过上面的表格,可以看出来大小端的不同,在这里无法讨论那种方式更好,个人觉得似乎大端模式更符合我的习惯。
(注:在这里我还要说一句,其实在计算机内存中并不存在所谓的数据类型,比如char,int等的。
这个类型在代码中的作用就是让编译器知道每次应该从那个地址起始读取多少位的数据,赋值给相应的变量。

指针法:

<span style="font-size:14px;color:#ff0000;">
<span style="font-size:24px;">#include<stdio.h>
//int chese(int num)
//{
// char *p=&num;
// while(*p==1)
// {
// return 1;
// }
// return 0;
//}
//
//int main()
//{
// int num=1;int ret=0;
// ret=chese(num);
// if(ret==1)
// {
// printf("little\n");//小端
// }
// else
//printf("big\n");//大端
// system("pause");
//return 0;
//}</span>
</span>

联合共用体法

#include <stdio.h>
//int main()
//{
//    int i;
//    union endian
//    {
//        int data;
//        char ch;
//    }test;
//    test.data = 0x12345678;
//    if(test.ch == 0x78)
//    {
//        printf("小端!\n");
//    }
//    else
//    {
//        printf("大端!\n");
//    }
// 
//    for(i=0; i<4; i++)
//    {
//        printf("%#x ------- %p\n",*((char *)&test.data + i),(char *)&test.data + i);
//    }
//	system("pause");
//    return 0;
//}
运行结果:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值