c语言检测cpu大小端模式

原文地址:http://www.cnblogs.com/encode/archive/2013/04/16/3024525.html


方法一:使用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架构的用大端模式


你可能感兴趣的:(c语言检测cpu大小端模式)