首先主要是区分地址存放的数据,由低到高
#include <iostream>
using namespace std;
int checkCPU(void)
{
union
{
int a;
char b;
}c;
c.a = 1;
return (c.b == 1);
}
/*1 在c中,联合体(共用体)的数据成员都是从低地址开始存放。
2 若是小端模式,由低地址到高地址c.a存放为0x01 00 00 00,c.b被赋值为0x01;
————————————————————————————
地址 0x00000000 0x00000001 0x00000002 0x00000003
c.a 01 00 00 00
c.b 01 00
————————————————————————————
3 若是大端模式,由低地址到高地址c.a存放为0x00 00 00 01,c.b被赋值为0x0;
————————————————————————————
地址 0x00000000 0x00000001 0x00000002 0x00000003
c.a 0 00 00 01
c.b 00 00
————————————————————————————
4 根据c.b的值的情况就可以判断cpu的模式了*/
int main()
{
short int x;
char x0,x1;
x=0x2233;
x0=*((char*)&x);
x1=((char*)&x)[1];
cout<<x0<<endl;
cout<<x1<<endl;
if (x0==0x22)
{
cout<<"Big"<<endl;
}
if (x0==0x33)
{
cout<<"little"<<endl;
}
}