个人技术分享

大小端介绍

字节序

Alt

内存布局

栈空间向低地址生长,堆空间向高地址生长。
Alt

小端

Alt

大端

Alt

确定大小端的方法

union

#include <stdio.h>

// 定义一个联合体,包含一个字节序列和一个整数
union EndianCheck {
    int num;
    char bytes[sizeof(int)];
};

int main() {
    union EndianCheck check;

    // 初始化整数值为1,这样在内存中的二进制表示会有一个字节为1,其余为0
    check.num = 1;

    // 根据bytes数组的第一个元素是否为1来判断是大端还是小端
    if (check.bytes[0] == 1) {
        printf("当前系统是小端模式(Little-Endian)\n");
    } else {
        printf("当前系统是大端模式(Big-Endian)\n");
    }

    return 0;
}

指针