C语言联合体(Union)——让同一块内存“变脸”
什么是联合体联合体是一种特殊的数据类型它让多个成员共享同一块内存空间。就像一间“变形房间”——你可以把它当作卧室也可以当作书房但同一时间只能有一种用途。union Data { int i; float f; char str[20]; };这里 i、f、str 从同一个地址开始存储大小取决于最大的成员此处为 str[20]占20字节。联合体 vs 结构体核心区别对比项结构体 (struct)联合体 (union)内存分配每个成员独立分配所有成员共享一块内存总大小各成员大小之和对齐最大成员的大小使用方式可同时存储多个值同一时刻只能存一个有效值典型场景组合不同属性如学生信息节省内存或“多态”解析二进制数据举个例子结构体像抽屉柜每个抽屉放不同东西互不干扰。联合体像百变工具箱每次只能放一种工具放扳手时锤子就不存在了。实际用法示例1. 节省内存嵌入式常用union Packet { int intVal; float floatVal; char byteArr[4]; }; // 大小只有4字节而不是 444122. 类型双关解析不同格式union Number { int n; float f; }; union Number num; num.f 3.14; printf(整数形式%d\n, num.n); // 输出浮点数的二进制对应的整数值3. 搭配结构体实现“带标签的联合体”安全用法struct Variant { int type; // 0:int, 1:float, 2:string union { int i; float f; char s[20]; } data; }; // 通过 type 标记当前存储的是哪种类型避免误读注意事项坑点赋值会覆盖——修改一个成员其他成员的值随之改变因为它们共用内存。读取未赋值的成员是未定义行为得到的是垃圾数据。大小按最大成员对齐不是简单的相加。不能直接比较两个联合体标准未定义按成员逐个比。什么时候用联合体内存极度受限如单片机、协议栈。需要将同一块数据“翻译”成不同视图如网络字节序转换。实现变体类型配合枚举或结构体标记。一句话总结联合体 一块内存多种解释节省空间但小心覆盖。理解它你的C语言工具箱又添一把利器如果你觉得有帮助欢迎点赞、收藏、评论让更多人看到

相关新闻

AutoCAD 2024 3D壳体设计:从草图到STL打印文件的5步完整流程

AutoCAD 2024 3D壳体设计:从草图到STL打印文件的5步完整流程

AutoCAD 2024 3D壳体设计:从草图到STL打印文件的5步完整流程在工业设计和产品开发领域,3D壳体设计一直是工程师和设计师面临的核心挑战之一。无论是电子设备外壳、机械防护罩还是消费品包装,壳体不仅需要满足功能性需求,还要兼顾美…

2026/7/13 0:17:23 阅读更多 →
175.别把急停写在程序末尾!**前置 RETURN 最高优先级安全架构,工业强制标准规范写法**

175.别把急停写在程序末尾!**前置 RETURN 最高优先级安全架构,工业强制标准规范写法**

摘要 可编程逻辑控制器(PLC)是工业自动化领域最核心的控制设备。本文从PLC的硬件架构与扫描周期原理出发,以IEC 61131-3标准的结构化文本(ST)语言为主线,系统讲解PLC编程的核心逻辑。通过一个完整的工业罐装生产线控制案例,提供可直接运行的ST代码,并详细分析运行结果…

2026/7/13 0:13:23 阅读更多 →
从一张小票到一款鸿蒙应用:CodeBuddy 陪我 4 小时做完鸿蒙应用“智慧收据管家“的完整实录

从一张小票到一款鸿蒙应用:CodeBuddy 陪我 4 小时做完鸿蒙应用“智慧收据管家“的完整实录

从一张小票到一款鸿蒙应用:CodeBuddy 陪我 4 小时做完鸿蒙应用"智慧收据管家"的完整实录 写在前面:为什么是这张小票 一切的起点,是上周三晚上我在整理抽屉时翻出的那张"乐购生活超市"购物小票。日期 2024-05-25&#xf…

2026/7/13 0:07:21 阅读更多 →

最新新闻

图像处理常用公式

图像处理常用公式

在图像处理和工业视觉中,图像宽高、像素总数、通道数、位深、数据量、FOV、Pixel Size、空间分辨率之间存在明确的计算关系。一、常用变量与符号二、图像宽、高与像素总数1. 图像像素总数例如:图像宽度:4096 pixel 图像高度:4096 …

2026/7/13 1:27:51 阅读更多 →
通过级联批发市场集成在当地电力市场中投标(Matlab代码实现)

通过级联批发市场集成在当地电力市场中投标(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

2026/7/13 1:27:51 阅读更多 →
Reloaded-II:让游戏焕然一新的模组管理神器

Reloaded-II:让游戏焕然一新的模组管理神器

Reloaded-II:让游戏焕然一新的模组管理神器 【免费下载链接】Reloaded-II Universal .NET Core Powered Modding Framework for any Native Game X86, X64. 项目地址: https://gitcode.com/gh_mirrors/re/Reloaded-II 还记得那些让你心动的游戏模组吗&#x…

2026/7/13 1:25:50 阅读更多 →
如何用AI象棋助手VinXiangQi快速提升棋力:免费开源深度学习工具全指南

如何用AI象棋助手VinXiangQi快速提升棋力:免费开源深度学习工具全指南

如何用AI象棋助手VinXiangQi快速提升棋力:免费开源深度学习工具全指南 【免费下载链接】VinXiangQi Xiangqi syncing tool based on Yolov5 / 基于Yolov5的中国象棋连线工具 项目地址: https://gitcode.com/gh_mirrors/vi/VinXiangQi 想要在象棋对弈中获得专…

2026/7/13 1:23:49 阅读更多 →
League Akari:英雄联盟玩家的智能游戏伴侣完整使用指南

League Akari:英雄联盟玩家的智能游戏伴侣完整使用指南

League Akari:英雄联盟玩家的智能游戏伴侣完整使用指南 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League Akari是一款基于LCU…

2026/7/13 1:21:48 阅读更多 →
二分法:嵌入式与工业控制中可靠求根的基石算法

二分法:嵌入式与工业控制中可靠求根的基石算法

1. 项目概述:为什么一个“老掉牙”的数学方法,至今仍是工程师手边最可靠的扳手?你有没有遇到过这样的场景:写好了一段控制电机转速的嵌入式代码,仿真一切正常,可一上电,电机就发出刺耳的啸叫&am…

2026/7/13 1:19:48 阅读更多 →

日新闻

Palworld存档编辑完全掌握:从零开始实现游戏数据可视化修改

Palworld存档编辑完全掌握:从零开始实现游戏数据可视化修改

Palworld存档编辑完全掌握:从零开始实现游戏数据可视化修改 【免费下载链接】palworld-save-tools Tools for converting Palworld .sav files to JSON and back 项目地址: https://gitcode.com/gh_mirrors/pa/palworld-save-tools 你是否曾经想要调整Palwor…

2026/7/13 0:01:19 阅读更多 →
浦东旧模块回收哪家强?专业评测带你一探究竟

浦东旧模块回收哪家强?专业评测带你一探究竟

于科技迅猛飞速迭代的当下此刻, 旧模块的回收处置, 不但关联着资源的再度利用, 而且更牵扯到数据安全以及环保合规事宜。你是不是也正为那堆积得如同山峦般的旧模块而发愁? 是不是不清楚该怎样安全且高效地去处理它们? 别忧心烦恼, 就在今日, 我会以具备权威影响力的自媒体博…

2026/7/13 0:01:19 阅读更多 →
卡梅德生物技术快报|重组蛋白的表达和纯化:IMAC 金属螯合色谱全流程工艺手册|基质 - 配基 - 金属离子匹配与蛋白质分离纯化参数优化

卡梅德生物技术快报|重组蛋白的表达和纯化:IMAC 金属螯合色谱全流程工艺手册|基质 - 配基 - 金属离子匹配与蛋白质分离纯化参数优化

1 研究背景与现存技术痛点(提出问题)基因工程、蛋白质组学、生物制药研发流程中,蛋白质分离纯化是决定下游实验成败的关键环节。当前实验室常规蛋白质分离纯化工艺存在三类难以标准化的技术瓶颈:传统离子交换、分子筛层析无特异性…

2026/7/13 0:05:20 阅读更多 →

周新闻

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨 在一个阳光明媚的上午,互联网大厂的面试官坐在桌前,准备迎接他的面试候选人——燕双非,一个以搞笑和幽默著称的程序员。第一轮提问 面试官:燕双非,作…

2026/7/12 0:03:13 阅读更多 →
车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估在智能驾驶和车联网技术快速发展的今天,车载以太网作为新一代车载网络的核心传输技术,其物理层性能直接决定了数据传输的可靠性和稳定性。1000BASE-T1作为当前主流的…

2026/7/12 0:03:14 阅读更多 →
VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战指南嵌入式开发领域正经历一场工具链的静默革命。当传统Keil用户首次打开VSCode的扩展市场搜索EIDE时,往往会惊讶于这个看似简单的插件竟能重构十余年的开发习惯。本文将揭示如何用五个精准步骤&#xff0…

2026/7/12 0:03:14 阅读更多 →

月新闻