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

相关推荐
励志的小陈7 小时前
贪吃蛇(C语言实现,API)
c语言·开发语言
CS创新实验室11 小时前
CS实验室行业报告:机器人领域就业分析报告
大数据·人工智能·机器人
爱编码的小八嘎11 小时前
C语言完美演绎8-15
c语言
QYR-分析11 小时前
机器人物体检测/追踪传感器行业解析及市场机遇
人工智能·机器人
YSF2017_311 小时前
C语言16-makefile(3)——makefile的模式规则
linux·c语言·开发语言
dgaf13 小时前
谢谢 AI (打靶测试用文)
c语言·gpt·ai编程·d3d12
一行代码一行诗++15 小时前
C语言中scanf详解
c语言·开发语言
ZenosDoron15 小时前
keil软件修改字体,Asm editor,和C/C++ editor的区别
c语言·开发语言·c++
yuan1999715 小时前
C&CG(列与约束生成)算法,来解决“风光随机性”下的微网鲁棒配置问题
c语言·开发语言·算法
Gerardisite16 小时前
企微机器人开发指南
java·python·机器人·自动化·企业微信