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

相关推荐
你怎么知道我是队长5 分钟前
C语言---输入和输出
c语言·开发语言
net3m338 分钟前
单片机屏幕多级菜单系统之当前屏幕号+屏幕菜单当前深度 机制
c语言·c++·算法
你怎么知道我是队长15 分钟前
C语言---文件读写
java·c语言·开发语言
wu_asia1 小时前
编程技巧:如何高效输出特定倍数数列
c语言·数据结构·算法
你怎么知道我是队长1 小时前
C语言---无名位域
c语言·开发语言
码农小韩4 小时前
基于Linux的C++学习——循环
linux·c语言·开发语言·c++·算法
Q741_1475 小时前
海致星图招聘 数据库内核研发实习生 一轮笔试 总结复盘(2) 作答语言:C/C++ 哈夫曼编码 LRU
c语言·数据库·c++·算法·笔试·哈夫曼编码·哈夫曼树
你怎么知道我是队长5 小时前
C语言---位域
c语言·开发语言
元媛媛6 小时前
UiPath- RPA 机器人流程自动化|基础与安装
机器人·自动化·rpa
yintele6 小时前
类人机器人BMS的静电防护
网络·安全·机器人