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

相关推荐
cdg==吃蛋糕1 小时前
selenium webdriver使用
c语言·selenium·测试工具
眸生1 小时前
至此(day1-day4)代码详解(ai辅助整理)
c语言·汇编·操作系统·计算机组成原理·显存·i/o外设
xiecoding.cn1 小时前
string在c语言中代表什么(非常详细)
c语言·string·c语言string·c语言string.h·string.h头文件
whoarethenext2 小时前
c/c++的opencv均值模糊
c语言·c++·opencv
陈工机器人课堂2 小时前
机器人手臂相机应用介绍
机器人
AI+程序员在路上7 小时前
C及C++的音频库与视频库介绍
c语言·c++·音视频
KeithTsui7 小时前
C语言之 比特(bit)、字节(Byte)、字(Word)、整数(Int)
linux·c语言·开发语言·c++·算法·word
梁下轻语的秋缘12 小时前
每日c/c++题 备战蓝桥杯(洛谷P1440 求m区间内的最小值 详解(单调队列优化))
c语言·c++·蓝桥杯
林开落L13 小时前
C语言:基础篇之常见概念
c语言·开发语言
一匹电信狗13 小时前
【数据结构】队列的完整实现
c语言·数据结构·c++·算法·leetcode·排序算法·visual studio