大端模式:数据的高字节,保存在内存的低地址中,而数据的低字节保存在内存的高地址中。
小端模式:数据的高字节,保存在内存的高地址中,而数据的低字节保存在内存的低地址中。
检查当前系统的存储模式为大小端的一种方式是使用union类型数据。
由于union中所有的数据成员共用一个空间,所有的数据成员都是共用一个起始地址。
空间的大小为数据成员中长度最长的数据成员。
具体实现如下:
union
{
int i;
char c;
}u;
int EndianCheck(void)
{
u.c = 0x01;
if(u.i == 1)
{
return 1;
}
else
{
return 0;
}
}
int main(int argc,char** argv)
{
if(EndianCheck)
{
printf("little Endian\n");
return 0;
}
printf("Big Endian\n");
return 0;
}
union中的成员i占四个字节,而c只有占一个字节。当c被赋值为1的时候,有其他三个字节值都为0。
如果取出低地址上的值为1,说明这个是小端模式。
如果取出高地址上的值为1,说明这个是大端模式。
这个位置判断i的值来确定。
本文介绍了一种使用union类型数据检查当前系统存储模式的方法,并通过一个简单的C语言程序演示了如何判断计算机系统采用的是大端模式还是小端模式。

被折叠的 条评论
为什么被折叠?



