
C语言共用体union
发布日期:2021-05-20 05:49:00
浏览次数:11
分类:精选文章
本文共 570 字,大约阅读时间需要 1 分钟。
10.共用体union
10.1 共用体类型的定义、变量定义和使用
(1) 共用体 (union) 和结构体 (struct) 在类型定义、变量定义上非常相似。
(2) 根本区别是:结构体类似一个"包裹",其中各个成员占据内存的不同单元,只是被打包在一起称为结构体;而共用体中的成员则占据同一内存单元,存在着一种多义性,更像是一块可以被不同方式解读的"硬盘"。
(3) 共用体的本质是对同一内存空间的二进制数据进行不同的解读方式。
(4) "联合体"这个名字不太好,现在用"共用体"更准确。
(5) 用 sizeof 计算共用体的大小,其实取的是占用内存最大的成员的大小,这样才能保证存下的空间足够容纳所有成员。
(6) 共用体内存对齐问题不存在,因为它本质上就是一个内存单元,不管你如何访问,都从同一个地址开始。
10.2 共用体和结构体的相同与不同
(1) 操作语法上基本相同,包括定义类型、声明变量、访问成员都非常相似。
(2) 本质区别在于:结构体是多个独立内存单元的集合,每个成员都有自己独特的地址空间,而共用体只是对一个内存单元的多重解读方式。
10.3 共用体的主要用途
(1) 用在面对同一内存块需要不同的解读方式时。
(2) 在C语言中,虽然可以通过指针或强制类型转换实现类似的功能,但共用体更简单直观,更便于理解和使用。
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年04月12日 22时19分39秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
OpenCv+wxwidgets尝试
2019-03-16
wxwidgets自定义事件+调试
2019-03-16
wxwidgets编写多线程程序--wxThread
2019-03-16
BUUCTF:[湖南省赛2019]Findme
2019-03-16
ciscn2021西北部分pwn
2019-03-17
p144循环网络
2019-03-17
Finger.01 - ESP8266模块STA模式调试
2019-03-17
三维点云处理
2019-03-17
springboot security 基于redis的session共享(7)
2019-03-17
vue 权限管理 菜单按钮权限控制(7)
2019-03-17
vue 权限管理 主题切换(8)
2019-03-17
Qt 在Excel文件中Chart绘图
2019-03-17
U3D资源加载
2019-03-17
01-webpack5理解及配置
2019-03-17
JavaScript作用域和作用域链
2019-03-17
webpack的安装和使用
2019-03-17
Vue.js学习-15-v-for循环数组内容
2019-03-17
研发效能工具集
2019-03-17