我看到一种方法来了解平台的字节顺序是这个程序,但我不明白
#include <stdio.h>
int main(void)
{
int a = 1;
if( *( (char*)&a ) == 1) printf("Little Endian\n");
else printf("Big Endian\n");
system("PAUSE");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
测试做了什么?
An int几乎总是大于一个字节,并且经常跟踪架构的字大小.例如,32位架构可能具有32位整数.因此,给定典型的32位整数,4字节的布局可能是:
00000000 00000000 00000000 00000001
Run Code Online (Sandbox Code Playgroud)
或者首先使用最低有效字节:
00000001 00000000 00000000 00000000
Run Code Online (Sandbox Code Playgroud)
char*是一个字节,所以如果我们将这个地址转换为char*,我们将获得上面的第一个字节
00000000
Run Code Online (Sandbox Code Playgroud)
要么
00000001
Run Code Online (Sandbox Code Playgroud)
因此,通过检查第一个字节,我们可以确定体系结构的字节顺序.