联合体union的特殊之处

一个联合体union的长度等于其内部长度最大的成员的长度。

union的所有成员共享同一块内存空间,可以利用这个特性读取数据的字节存储方式。

c 复制代码
#include <stdio.h>

int check_endian() {
    union {
        short s;        // 2 字节(short)
        char c[2];      // 2 字节(char)
    } u;
    u.s = 0x0102;       // 小端:0x02 0x01;大端:0x01 0x02
    return u.c[0] == 0x02;  // 小端返回 1,大端返回 0
}

int main() {
    if (check_endian()) {
        printf("Little-Endian\n");
    } else {
        printf("Big-Endian\n");
    }
    return 0;
}

1,小端模式:内存的低地址存数据的低位,内存的高地址存数据的高位。低低高高。

2,大端模式:内存的低位存数据的高位,内存的高地址存数据的低位。 低高高低。

相关推荐
layneyao2 小时前
AI在医疗领域的10大应用:从疾病预测到手术机器人
人工智能·机器人
努力创造奇迹4 小时前
C 语言联合体、枚举、typedef 详解
c语言·开发语言
ImAlex4 小时前
C语言结构体中0字节数组(柔性数组)的妙用(附内存排布图解和完整代码)
c语言
纪元A梦4 小时前
华为OD机试真题——阿里巴巴找黄金宝箱Ⅰ(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
java·c语言·javascript·c++·python·华为od·go
ImAlex5 小时前
如何使用gcc的-finstrument-functions特性通过打印函数调用栈辅助理解复杂C/C++项目的函数调用关系
linux·c语言
遨博学院5 小时前
机器人结构认知与安装
机器人
Robot2516 小时前
「地平线」创始人余凯:自动驾驶尚未成熟,人形机器人更无从谈起
人工智能·科技·机器学习·机器人·自动驾驶
YuforiaCode7 小时前
第十二届蓝桥杯 2021 C/C++组 空间
c语言·c++·蓝桥杯
YuforiaCode7 小时前
第十二届蓝桥杯 2021 C/C++组 卡片
c语言·c++·蓝桥杯