字节序被分为两类:

1. Big-Endian(大端):高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。

2.Little-Endian(小端):低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。


我们可以利用这2个代码来判断我们的机器是哪一种存储方式(第一个更简洁,第二个则更容易理解里面发生了什么):

#include <stdio.h>

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

int main()
{
	int i = 0;
	char* p = NULL;

	i = 0x11223344;
	p = (char*) & i;

	if (*p == 0x11)
	{
		printf("该机器是大端字节序\n");
	}
	else if (*p == 0x44)
	{
		printf("该机器是小端字节序\n");
	}
	else
	{
		printf("代码有误,请修改代码再进行判断\n");
	}

	return 0;
}