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

相关推荐
mc235642 分钟前
C语言指针详解
c语言·开发语言·算法
Lonble3 小时前
C语言篇:预处理
c语言·c
少陵野小Tommy5 小时前
C语言计算行列式的值
c语言·开发语言·学习·学习方法
迎風吹頭髮5 小时前
UNIX下C语言编程与实践23-模拟 UNIX ls -l 命令:lsl 程序的设计与实现全流程
服务器·c语言·unix
njxiejing6 小时前
C语言中的scanf函数(头文件、格式控制、取地址符号分析)
c语言·开发语言
一颗小树x9 小时前
【机器人】SG-Nav 分层思维链H-CoT | 在线分层3D场景图 | 目标导航
机器人·导航·sg-nav·分层思维链h-cot·3d场景图
学不动CV了10 小时前
C语言(FreeRTOS)中堆内存管理分析Heap_1、Heap_2、Heap_4、Heap_5详细分析与解析(二)
linux·c语言·arm开发·stm32·单片机·51单片机
头发还没掉光光15 小时前
C++STL之list
c语言·数据结构·c++·list
beawan0117 小时前
人形机器人龙头公司-研发实力对比:双林股份、骏创科技、亿嘉和、丰立智能、北特科技、斯菱股份
科技·金融·机器人
坚持编程的菜鸟19 小时前
LeetCode每日一题——交替合并字符串
c语言·算法·leetcode