怎么去判断一个操作系统的字节序是大端还是小端?
暂时我就知道两种,一种是用联合体,一种是用宏。
联合体代码如下:
union BigEndian{
char a[2];
int16_t b; //个人感觉用32和16好像没啥区别不知道是不是我的理解有误
};
bool isBigEndian(){
BigEndian test ;
test.b = 1;
if(test.a[0] == 0 ){
return true;
}else{
return false;
}
//用宏的
return __BYTE_ORDER == __BIG_ENDIAN;
}