联合体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,大端模式:内存的低位存数据的高位,内存的高地址存数据的低位。 低高高低。

相关推荐
深邃-1 小时前
数据结构-队列
c语言·数据结构·c++·算法·html5
maxmaxma1 小时前
ROS2 机器人 少年创客营:Day 5
机器人·ros2
2301_822782822 小时前
C语言数组通关攻略!从一维到字符数组,零基础也能轻松掌握
c语言·算法·数组·编程基础·避坑技巧
2301_822782822 小时前
C3 vs Zig:2026年,谁才是真正能“修复”C语言的救星?
c语言·zig·c3·系统级开发·语言革新
TE-茶叶蛋2 小时前
AI聊天机器人 / 轻量级对话系统(调用闭源API)
人工智能·机器人
无心水2 小时前
【OpenClaw:赚钱】案例9、模拟盘ROI+1560%:跨平台加密预测市场套利机器人全栈开发指南
机器人·区块链·金融科技·roi·openclaw·openclaw 变现
星夜夏空993 小时前
C语言进阶项目——搭建内存池
c语言·开发语言
聆风吟º4 小时前
【C标准库】深入理解 C 语言memmove函数:安全内存拷贝的利器
c语言·开发语言·memmove·库函数
busideyang4 小时前
函数指针类型定义笔记
c语言·笔记·stm32·单片机·算法·嵌入式
深邃-4 小时前
数据结构-双向链表
c语言·开发语言·数据结构·c++·算法·链表·html5