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

相关推荐
nenchoumi31193 小时前
UE5 学习系列(五)导入贴图资产
学习·游戏·ue5·机器人
@老蝴8 小时前
C语言 — 通讯录模拟实现
c语言·开发语言·算法
DFminer13 小时前
【仿生机器人】建模—— 图生3D 的几个办法
人工智能·安全·机器人
学习噢学个屁14 小时前
基于STM32汽车温度空调控制系统
c语言·stm32·单片机·嵌入式硬件·汽车
共享家952714 小时前
c语言(重点)
c语言·数据结构·算法
iCxhust14 小时前
汇编字符串比较函数
c语言·开发语言·汇编·单片机·嵌入式硬件
硅谷秋水16 小时前
TASTE-Rob:推进面向任务的手-目标交互视频生成,实现可通用的机器人操作
人工智能·深度学习·机器学习·计算机视觉·机器人·交互
我命由我1234517 小时前
STM32 开发 - 中断案例(中断概述、STM32 的中断、NVIC 嵌套向量中断控制器、外部中断配置寄存器组、EXTI 外部中断控制器、实例实操)
c语言·开发语言·c++·stm32·单片机·嵌入式硬件·嵌入式
Mountain and sea17 小时前
ABB RobotStudio 和 S7-PLCSIM Advanced V5.0 搭建虚拟通信环境,实现 PLC 对机器人布尔量、数字量和模拟量的控制。
网络·机器人
宋一平工作室17 小时前
单片机队列功能模块的实战和应用
c语言·开发语言·stm32·单片机·嵌入式硬件