c语言检测cpu大小端模式
2013-04-16 19:02 放作夥 阅读(1208) 评论(2) 编辑 收藏 举报
方法一:使用C中的共用体:
bool IsLitte_Endian()
{
union w{
int a;
char b;
}c;
c.a=1;
return (c.b==1);//若处理器是Big_endian的,则返回false;若是Little_endian的,则返回true。
}
方法二:强制类型转换
bool IsLitte_Endian()
{
int a = 0x12345678;//int占用4字节,16进制的话一位相当4位2进制,4*8=32bit=4byte
short *p=(short*)&a;//short占用2字节
return (0x5678 == *p);//若处理器是Big_endian的,则返回false;若是Little_endian的,则返回true。
}
PS:x86架构cpu用小端模式,arm架构的用大端模式