c语言检测cpu大小端模式

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

原文地址:https://www.cnblogs.com/encode/p/3024525.html