自己想的,写着玩,毕竟实际编程中少有用union,今天突然想想用用它,做点啥。
typedef union
{
int ival;
struct
{
char val1;
char val2;
char val3;
char val4;
} cval;
} CheckBigEndian;
int main( )
{
CheckBigEndian big;
big.ival = 0;
big.cval.val1 = 'a';
big.cval.val2 = 'b';
big.cval.val3 = 'c';
big.cval.val4 = 'd';
//期望 去掉低字节
big.ival &= 0xFFFFFF00;
}
if(big.cval.val1 == 0)
{
//发现高字节被去掉了,所以按照int读取的时候,是先读取内存高字节
//所以是低位的值存放在高字节,是 big endian
}
else if(big.cval.val4 == 0 )
{
//同上面的逻辑一样,不过是相反的一种状况。
}
方法看起来代码不是那么优美,但是简单大方,直接,比较易懂。