#include <stdio.h>
bool CheckCPU()
{
union w
{
int a;
char b;
} c;
c.a = 1;
return (c.b == 1);
}
void main()
{
if (CheckCPU())
{
printf("Litter_endian!");
}
else
printf("Big_endian");
}
通过联合体巧妙的设计了检查系统大小端的问题。union中,公用地址是从小地址开始的。
如果是小段,那么c.b为1,如果是大端,那么c.b为0.