C语言中的共同体(共用体)

embedded/2025/3/22 14:37:17/

一.共用体

1.应用场景:

一种数据可能有多种数据类型,因此我们可以使用共同体来定义这种数据

2.定义格式:

union 共同体名字 {数据类型1 成员1;数据类型2 成员2;...数据类型n 成员n;
}

3.简单案例:

#include<stdio.h>
union Money {double mond;int moni;char mons;
};int main() {union Money m;//赋值时每次只能对一种类型赋值,并且每次只能赋一个值 m.moni = 100;printf("%d\n", m.moni);
}

4.共同体也可以起别名便于我们使用,跟结构体起别名的方式是相同的

简单举例吧:

typedef union Money {double mond;int moni;char mons;
} M;

二.共同体的特点

1.共同体也叫联合体,共用体

2.所有的变量都使用同一个内存空间

3.所占的内存大小 = 最大成员的长度(也受内存对齐影响)

4.每次只能给一个变量进行赋值,因为第二次赋值时会覆盖原有的数据

三.结构体和共用体的区别

结构体:一种事物中包含多个属性

共用体:一个属性有多种类型

1.存储方式:

结构体:各存各的

共用体:存在一起,多次存会把原有的数据覆盖

2.内存占用:

结构体:各个变量的总和(受到内存对齐的影响)

共用体:最大类型(受到内存对齐的影响)


http://www.ppmy.cn/embedded/174713.html

相关文章

UI前端与数字孪生:打造智慧城市的双引擎

hello宝子们...我们是艾斯视觉擅长ui设计和前端数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 随着信息技术的飞速发展&#xff0c;智慧城市的概念逐渐从理论走向实践。智慧城市旨在通过运用物联网…

python基础8 单元测试

通过前面的7个章节&#xff0c;作者学习了python的各项基础知识&#xff0c;也学习了python的编译和执行。但在实际环境上&#xff0c;我们需要验证我们的代码功能符合我们的设计预期&#xff0c;所以需要结合python的单元测试类&#xff0c;编写单元测试代码。 Python有一个内…

北京南文观点:AI掘金术激活算法中的“沉默用户”

在流量红利见顶的当下,中小企业正陷入“高成本获客—低效转化—用户流失”的恶性循环。数据显示,2023年国内互联网用户增速降至2.1%,但企业平均获客成本同比上涨37%。当头部平台将90%的流量分配给10%的头部内容时,海量中小企业的优质内容却沉没于算法黑箱中,沦为“沉默用户”。…

Vue+ElementUI 字符串数组标签化展示组件

一. 效果 数据&#xff1a;‘[“苹果”,“香蕉”]’ 可添加&#xff0c;编辑&#xff0c;删除。 二. 组件源码 <template><div><div v-for"(item, index) in items":key"index"><el-inputv-if"inputVisible && ed…

练习-班级活动(map存储键值对)

问题描述 小明的老师准备组织一次班级活动。班上一共有 n 名 (n 为偶数) 同学&#xff0c;老师想把所有的同学进行分组&#xff0c;每两名同学一组。为了公平&#xff0c;老师给每名同学随机分配了一个 n 以内的正整数作为 id&#xff0c;第 i 名同学的 id 为 ai​。 老师希望…

基于微信小程序的充电桩管理系统

一、开发背景 在开发充电汽车管理系统之前&#xff0c;深入的需求分析至关重要。我们要充分了解不同用户群体的需求&#xff0c;比如私家车主希望充电过程便捷、高效、安全&#xff0c;能够实时查看充电状态和费用明细&#xff1b;出租车、网约车司机则更注重充电速度和充电桩…

mac anaconda3遇到无法创建python2.7版本虚拟环境

在Mac M4电脑上安装了Anaconda3之后,想通过conda创建python2.7的时候遇到错误: conda create -n python27 python=2.7(base) yuxuandong@dongyuxuandeMacBook-Air-2 ~ % conda create -n python27 python=2.7 Channels:- defaults- https://repo.anaconda.com/pkgs/main-

1.Go - Hello World

1.安装Go依赖 https://go.dev/dl/ 根据操作系统选择适合的依赖&#xff0c;比如windows&#xff1a; 2.配置环境变量 右键此电脑 - 属性 - 环境变量 PS&#xff1a; GOROOT&#xff1a;Go依赖路径&#xff1b; GOPATH&#xff1a;Go项目路径&#xff1b; …