如何判断机器的CPU是大端还是小端?

Boolean IsLittleEndian(void)
{
    short x, *px;
    unsigned char *pc;

    px = &x;
    pc = (unsigned char *) px;
    *pc = 1; *(pc+1) = 0;
     return x==1;
}