您的位置:首页 > 其它

确认当前系统的大小端存储模式

2015-10-22 09:31 267 查看
大端模式:数据的高字节,保存在内存的低地址中,而数据的低字节保存在内存的高地址中。

小端模式:数据的高字节,保存在内存的高地址中,而数据的低字节保存在内存的低地址中。

检查当前系统的存储模式为大小端的一种方式是使用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的值来确定。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: