C语言——联合体和枚举

1. 联合体

联合体和结构体类似。

 联合体类型的声明:

 联合体的特点:

像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以是不同的类型。
但是编译器只为最⼤的成员分配⾜够的内存空间。联合体的特点是所有成员共⽤同⼀块内存空间。所以联合体也叫:共⽤体
给联合体其中⼀个成员赋值,其他成员的值也跟着变化。
          

我们发现当改变un.c时un.i也跟着改变,改变un.i时un.c也跟着改变。所以对于联合体来说,同一时间我们只用一个成员,否则会发生冲突。

结论:同一时间在多个成员中我们只需要用到一个成员时,可以将多个成员放入联合体中。

联合体大小的计算:

联合变量的⼤⼩⾄少是最⼤成员的⼤⼩(因为联合⾄少得有能⼒保存最⼤的那个成员)。

当最⼤成员⼤⼩不是最⼤对⻬数的整数倍的时候,就要对⻬到最⼤对⻬数的整数倍。

写一个程序,判断当前机器是大端存储还是小端存储

联合体可以节省空间
我们要搞⼀个活动,要上线⼀个礼品兑换单,礼品兑换单中有三种商品:图书、杯⼦、衬衫。
每⼀种商品都有:库存量、价格、商品类型和商品类型相关的其他信息。
图书:书名、作者、⻚数
杯⼦:设计
衬衫:设计、可选颜⾊、可选尺⼨
我们把公共属性单独写出来,剩余属于各种商品本⾝的属性使⽤联合体联合起来,这样就可以
介绍所需的内存空间,⼀定程度上节省了内存。

2. 枚举

枚举类型用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型。
枚举顾名思义就是⼀⼀列举。
把可能的取值⼀⼀列举。

枚举类型的声明:

enum 枚举类型的关键字,tag 枚举类型名,enum tag 用户定义的枚举类型

{}中的内容是枚举类型的可能取值,也叫枚举常量
这些可能取值都是有值的,默认从0开始,依次递增1。
枚举类型的使⽤:用枚举常量给枚举变量赋值
那是否可以拿整数给枚举变量赋值呢?在C语⾔中是可以的,但是在C++是不⾏的,C++的类型检查⽐较严格。
在声明枚举类型的时候也可以赋初值,且赋值前的枚举常量的值不变,赋初值后的枚举常量值从赋初值的枚举常量开始,依次递增1。
为什么使⽤枚举? 我们可以使⽤ #define 定义常量进行对比。
枚举类型的优点:
1. 增加代码的可读性和可维护性
2. 和#define定义的标识符⽐较枚举有类型检查,更加严谨。
3. 便于调试,预处理阶段会删除 #define 定义的符号
4. 使⽤⽅便,⼀次可以定义多个常量
5. 枚举常量是遵循作⽤域规则的,枚举声明在函数内,只能在函数内使⽤

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/601276.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

关于2024年东北教育装备展示会(沈阳)参展通知

2024年东北教育装备展示会 邀请函 数字赋能新时代 共创教育新未来 时间:2024年6月28-30日 地点:沈阳国际展览中心(沈阳市苏家屯-会展路9号) 展览面积:30000平方米 参展商数:260家 预计观众&#xff1…

Flink 部署模式

目录 概述 部署模式 会话模式(Session Mode) 单作业模式(Per-Job Mode) 应用模式(Application Mode) 运行模式(资源管理模式) Standalone运行模式 会话模式部署 应用模式部署 Yarn运行模式 会话模式部署 单作业模式部…

pdf转word,结果为什么是图片?怎么才能转成可编辑的文字?

PDF转Word为何会变成图片?这是许多人在使用文件格式转换工具时经常遇到的问题。为了解答这个疑问,我们需要从多个方面来探讨这个问题。 首先,PDF文件本身的特点是一个重要的因素。PDF,即Portable Document Format,是一…

云计算技术发展趋势详解

云计算最全详解(图文全面总结) 云计算是技术趋势的未来,掌握它至关重要。从基础到高级,本文深入探讨云计算的方方面面,为您提供全面的理解。 云计算 云计算将计算转移到远程数据中心,让用户灵活、经济地访问资源。就像水电一样&…

激光雕刻优化:利用RLE压缩技术提高雕刻效率与节省能源成本

什么是 RLE ?RLE 在激光雕刻应用实现代码:总结 什么是 RLE ? RLE 是 Run-Length Encoding(游程长度编码)的缩写。这是一种数据压缩技术,它通过减少连续重复的数据来减小文件的大小。RLE 在图像处理、无损…

VS调试技巧

1. 什么是bug bug本意是“昆⾍”或“⾍⼦”,现在⼀般是指在电脑系统或程序中,隐藏着的⼀些未被发现的缺陷或 问题,简称程序漏洞。 “Bug” 的创始⼈格蕾丝赫柏(Grace Murray Hopper),她是⼀位为美国海军⼯…

C 语言文件输入/输出(I/O)函数大全

C 语言文件输入/输出(I/O)函数大全 1. fopen() 函数2. fclose() 函数3. fread() 函数4. fwrite() 函数5. fseek() 函数6. ftell() 函数7. rewind() 函数8. feof() 函数9. ferror() 函数10. clearerr() 函数 😊 C 语言文件输入/输出&#xf…

gradio图像复原界面改进

图像复原界面展示需要输入图像和复原图像在界面的清晰对比,修改两张图像为同样大小。 默认情况: intreface代码如下: interface gr.Interface(fnrestore, # 要调用的函数inputs[gr.Image(label"输入图像")], # 第一个输入&am…

AI大模型探索之路-训练篇16:大语言模型预训练-微调技术之LoRA

系列篇章💥 AI大模型探索之路-训练篇1:大语言模型微调基础认知 AI大模型探索之路-训练篇2:大语言模型预训练基础认知 AI大模型探索之路-训练篇3:大语言模型全景解读 AI大模型探索之路-训练篇4:大语言模型训练数据集概…

测试平台开发:Django开发实战之注册界面实现(上)

实现注册功能,大概包括以下几个步骤 1、设计ui ##字段 通过看数据库里面的user表里面的字段,可以大概知道需要几个字段: emailusernamepasswordpassword_confirm 生成简单的ui界面,复制这个html代码 然后在项目路径下面创建一…

22_Scala集合Seq

文章目录 Seq序列1.构建集合2.List集合元素拼接&&集合拼接3.可变Seq&&List3.1 ListBuffer创建3.2 增删改查3.3 相互转化 Appendix1.Scala起别名2.Seq底层3.关于运算符操作: :4.空集合的表示 Seq序列 –Seq表示有序,数据可重复的集合 1.构建集合 …

整体安全保障服务方案包括哪些方面?

整体安全保障服务方案是一套综合性的措施,旨在保护企业的网络、数据和资源免受各种威胁。主要包含检测、加固、应急保障、安全运营、攻防演练等多项核心能力与服务。 ​安全狗通过专业团队、工具以及专业运营流程,提出了新一代整体安全保障思路&#xff…

开源代码分享(28)-含分布式光伏的配电网集群划分和集群电压协调控制

参考文献: [1] Chai Y , Guo L , Wang C ,et al.Network Partition and Voltage Coordination Control for Distribution Networks With High Penetration of Distributed PV Units[J].IEEE Transactions on Power Systems, 2018:3396-3407.DOI:10.1109/TPWRS.2018…

【深度学习】实验1 波士顿房价预测

波士顿房价预测 代码 import numpy as np import matplotlib.pyplot as pltdef load_data():# 1.从文件导入数据datafile D:\Python\PythonProject\sklearn\housing.datadata np.fromfile(datafile, sep )# 每条数据包括14项,其中前面13项是影响因素&#xff0c…

长方形盒子能容纳定宽的长方形物体最大长度

问题 已知长方形盒子长度a和宽度b,放入一宽度w的长方形物体,求长方形物体最大长度L。 答案 MS Excel公式如下(其中B1a,B2b,B3w): L SQRT(B1^2B2^2)-B1*B2*B3*2/(B1^2B2^2)注意 当求得 L ≤…

时间复杂度与空间复杂度(上篇)

目录 前言时间复杂度 前言 算法在运行的过程中要消耗时间资源和空间资源 所以衡量一个算法的好坏要看空间复杂度和时间复杂度, 时间复杂度衡量一个算法的运行快慢 空间复杂度是一个算法运行所需要的额外的空间 一个算法中我们更关心的是时间复杂度 时间复杂度 时…

使用idea管理docker

写在前面 其实idea也提供了docker的管理功能,比如查看容器列表,启动容器,停止容器等,本文来看下如何管理本地的docker daemon和远程的dockers daemon。 1:管理本地 双击shift,录入service: …

24年审计师报名时间汇总所需材料提前准备

2024审计师报名本周开始(5月10日起),各地报名时间不一,报名指南整理好了! ✅全国报名时间汇总报名费用资格审核:P1~P2。 ✅2024年审计师考试科目: 《审计相关基础知识》和《审计理论与实务》 ✅…

如何创建微信小程序?只需3步完成小程序制作

微信,中国最大的社交媒体应用程序,几个月前推出了微信小程序,这一神奇的功能立即大受欢迎。这些小程序让在中国注册的商业实体所有者创建一个小程序来与微信用户互动。这些小程序不需要在用户手机上进行任何安装,只需通过微信应用…

HP Z620 服务器打开VTx虚拟技术

在使用Virtual Box的时候,虚拟主机启动报错:提示需要VTx。于是到bios里面去设置VTx。 这里有个小坑,就是HP 的bios配置里面,VTx不在常规的“System Configuration”、“Advanced”等地方,而是在“Security”菜单里&…