Linux 源代码
static union { char c[4]; unsigned long l; } endian_test = { { 'l', '?', '?', 'b' } };
#define ENDIANNESS ((char)endian_test.l)
常规写法:
typedef unsigned char BYTE;
int main(int argc, char* argv[])
{
unsigned int num,*p;
p = #
num = 0;
*(BYTE *)p = 0xff;
if(num == 0xff)
{
printf("The endian of cpu is little/n");
}
else //num == 0xff000000
{
printf("The endian of cpu is big/n");
}
return 0;
}
联合体实现
int checkCPU()
{
union w
{
int a;
char b;
}c;
c.a=1;
return(c.b==1);
}