判断CPU大小端模式函数实现

数据在内存中有两种存储顺序,分别称为:大端模式(Big Endian)和小端模式(Little Endian)。

  • 大端模式:是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中;
  • 小端模式:是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中。
/*
判断CPU大小端模式
小端模式中:低位字节放在低地址,高位字节放在高地址;little-endian
大端模式中,低位字节放在高地址,高位字节放在低地址;big-endian
*/
char cpu_endian_mode(void)
{
    union {
        int a;
        char b;
    }c;
    
    c.a = 1;
    if (c.b == 1) {
        /* CPU 是 小端模式 */
        return 0;
    }
    else {

        /* CPU 是 大端模式 */
        return 1;
    }
}