(8)结构体、共用体和枚举类型数据
1. 结构体、共用体的定义及区别,typedef 定义别名
结构体的定义
结构体是一种用户自定义的数据类型,它可以将不同类型的数据组合在一起。例如,定义一个表示学生信息的结构体:
// 定义结构体类型 struct Student
struct Student {char name[20];int age;float score;
};
共用体的定义
共用体也是一种用户自定义的数据类型,但它的所有成员共享同一块内存空间。例如,定义一个简单的共用体:
union Data {int int_value;float float_value;char char_value;
};
结构体与共用体的区别
- 内存分配:
- 结构体的每个成员都有自己独立的内存空间,结构体所占内存大小是所有成员内存大小之和(考虑内存对齐)。例如,上述
struct Student结构体,name数组占20字节,age占4字节,score占4字节(假设float占4字节),总共28字节(考虑内存对齐可能会有一些填充)。 - 共用体的所有成员共享同一块内存,其大小等于占用内存最大的成员的大小。对于
union Data,int可能占4字节,float占4字节,char占1字节,所以union Data的大小为4字节。
- 结构体的每个成员都有自己独立的内存空间,结构体所占内存大小是所有成员内存大小之和(考虑内存对齐)。例如,上述
- 数据存储和访问:
- 结构体中每个成员都可以独立存储和访问不同的值。例如,可以分别设置
struct Student结构体中name、age和score的值。 - 共用体在某一时刻只能存储其中一个成员的值,因为它们共享内存。当给一个成员赋值时,可能会覆盖其他成员的值。
- 结构体中每个成员都可以独立存储和访问不同的值。例如,可以分别设置
使用 typedef 定义结构体、共用体别名
- 结构体别名:
typedef struct Student StudentInfo; // 现在 StudentInfo 就可以当作 struct Student 使用StudentInfo student1; // 等同于 struct Student student1;
- 共用体别名:
typedef union Data MyData;MyData data; // 等同于 union Data data;
2. 结构体和共用体数组、指针的定义和初始化,以及参数传递及应用
结构体数组和指针
- 结构体数组定义与初始化:
struct Student students[<相关文章:
(8)结构体、共用体和枚举类型数据
1. 结构体、共用体的定义及区别,typedef 定义别名 结构体的定义 结构体是一种用户自定义的数据类型,它可以将不同类型的数据组合在一起。例如,定义一个表示学生信息的结构体: // 定义结构体类型 struct Student struct Student {char name[20];int age;float score; };共…...
Jedis操作和springboot整合redis
Jedis-springboot整合redis Jedis 引入jedis依赖 注意事项 测试相关数据类型 Key String List set hash zset 案例 spring boot整合redis 引入相关依赖 在application.properties中配置redis 配置 创建redis配置类 创建测试类 Jedis 引入jedis依赖 <depen…...
基于AI大模型的复杂扫描件PDF信息提取与规整
前言 场景大致是会上传一个几十页的扫描件PDF,让AI在当中找出我需要的字段,本文会隐去具体行业信息和具体的AI提示词内容,只分享技术相关内容,请见谅。 AI模型选择 针对我们行业的使用场景,我主要测试了GPT、Claude以…...
为什么https先非对称加密,然后对称加密?
HTTPS之所以先使用非对称加密,然后在对称加密,主要是基于两者在加密效率与安全性方面的特性考虑。 首先,非对称加密具有极高的安全性,因为它使用了公钥和私钥这一对密钥。公钥是公开的,任何人都可以使用它来加密数据&…...
【Coroutines】Full Understanding of Kotlinx.Corutines Framework
文章目录 What is CorutinesDifference between Corutine and ThreadFast UsageSuspend FunctionAdvanced Usage of CoroutineCoroutine EssentialsCoroutineContextCoroutineScopePredefined CoroutineScopePredefined DispatchersPredefined CoroutineStartJobCreate a Corou…...
Python面向对象,实现图片处理案例,支持:高斯模糊、Canny边缘检测、反转边缘图像、生成手绘效果、调亮度......等等
实验图片如下: 命名为img1.jpg, 放在项目下新建文件夹images下 项目构造如下: app.py源码如下 import cv2 import os from matplotlib import pyplot as plt import numpy as npclass ImageProcessor:def __init__(self, image_path):self.image cv…...
SOLID - 依赖倒置原则(Dependency Inversion Principle)
SOLID - 依赖倒置原则(Dependency Inversion Principle) 定义 依赖倒置原则(Dependency Inversion Principle,DIP)是面向对象设计中的五大基本原则之一,通常缩写为SOLID中的D。DIP由Robert C. Martin提出&…...
【.NET 8 实战--孢子记账--从单体到微服务】--需求拆分与规划
在上一篇文章中我们收集了需求,并对需求进行了简单的分析和规划,但是对于开发人员来说,上一篇文章的需求还不够详细,并且没有形成计划。因此本篇文章将带领大家来拆分需求并规划开发里程碑。 一、详细需求列表 项目组进行了多次…...
在macOS的多任务处理环境中,如何平衡应用的性能与用户体验?这是否是一个复杂的优化问题?如何优化用户体验|多任务处理|用户体验|应用设计
目录 一 多任务处理与应用性能 1. macOS中的多任务处理机制 2. 性能优化的基本策略 二 用户体验的关键要素 1. 响应速度 2. 界面友好性 3. 功能的直观性 三 平衡性能与用户体验的策略 1. 资源管理 2. 优化数据加载 3. 使用合适的线程模型 4. 实时监测和调整 四 使…...
Vscode配置CC++编程环境的使用体验优化和补充说明
文章目录 快速编译运行👺code runner插件方案Code Runner Configuration 直接配置 相关指令和快捷键默认task配置和取消默认 配置文件补充介绍(可选 推荐阅读)😊使用vscode预置变量和环境变量环境变量的使用使用环境变量的好处环境变量可能引起的问题 检…...
十个方法杜绝CAD图纸泄密风险!2024年图纸防泄密指南!「必看」
随着信息技术的发展,CAD图纸的应用日益普遍,然而随之而来的图纸泄密风险也愈加严重。企业在提升效率的同时,更需重视信息安全。为此,本文将介绍十个有效的方法,帮助企业杜绝CAD图纸泄密风险,保障商业机密。…...
技术干货|HyperMesh CFD功能详解:虚拟风洞 Part 1
虚拟风洞VWT 从2023版本开始,虚拟风洞VWT(Virtual Wind Tunnel)模块合并到HyperMesh CFD中。 用户在VWT模块中完成LBM求解器ultraFluidX的前处理设置,导出参数文件XML和模型文件STL,并在GPU服务器上提交计算。 VWT目前…...
022集——统计多条线的总长度(CAD—C#二次开发入门)
如下图所示,选择多条线并统计长度: c#中不包含直接获取curve曲线长度 属性,需用如下方法:curve.GetDistanceAtParameter(item.EndParam) 附部分代码如下: using Autodesk.AutoCAD.ApplicationServices; using Autode…...
大模型重要技术系列三:高效推理
接上一篇高效训练,这一篇汇总下高效推理的方法。高效推理的两个主要优化目标是低延迟(快速得到推理结果)和高吞吐量(能同时处理很多请求),同时还要尽可能地少用资源(算力、存储、网络带宽&#…...
Android 刘海屏适配指南
如果您不希望您的内容与刘海区域重叠, 以确保您的内容不会与状态栏及 导航栏。如果您要呈现在刘海区域中,请使用 WindowInsetsCompat.getDisplayCutout() 检索 DisplayCutout 对象 包含每个刘海屏的安全边衬区和边界框。借助这些 API 您需要检查视频内容…...
微信小程序服务通知
项目中用到了小程序的服务消息通知,通知订单状态信息,下边就是整理的一下代码,放到项目中,把项目的小程序appid和小程序的secret写进去,直接运行即可 提前申请好小程序服务信息通知短信模板,代码需要用到模…...
Ubuntu使用Qt虚拟键盘,支持中英文切换
前言 最近领导给了个需求,希望将web嵌入到客户端里面,做一个客户端外壳,可以控制程序的启动、停止、重启,并且可以调出键盘在触摸屏上使用(我们的程序虽然是BS架构,但程序还是运行在本地工控机上的),我…...
泰州农商行
该文章用于测试,暴露面检测服务 1595116111115951161112159511611131595116111415951161115159511611161595116111715951161118159511611191595116112015951161121159511611221595116112315951161124159511611251595116112615951161127159511611281595116112915951…...
扫雷(C语言)
目录 前言 一、前提知识 二、扫雷游戏编写 2.2 test文件基本逻辑 2.2.1菜单编写 2.2.2game函数的逻辑 2.2.2.1定义两个数组 2.2.2.2两个数组数组的初始化 2.2.2.3打印棋盘 2.2.2.4布置雷 2.2.2.5排查雷 2.2.2.6获取坐标附近雷的数量 2.2.2.7什么时候…...
【实践功能记录8】使用UseElementSize实现表格高度自适应
一、关于 UseElementSize UseElementSize 是一个 Vue 组合式 API 的实用工具,通常用于获取 DOM 元素的尺寸信息,例如宽度、高度等。它通常与 v-slot 一起使用,以便在模板中直接访问这些尺寸信息。 地址:https://vueuse.org/core/u…...
收藏备用!【2025 版】CMD 命令超详细大全,零基础全覆盖
在Windows操作系统中,命令提示符(CMD)是一个强大的工具,允许用户通过输入命令来执行各种操作。无论是系统管理、网络配置,还是文件管理,CMD都能提供高效的解决方案。 一、基本命令 cd:更改目录…...
九成中老年为之困扰:隐秘的足部护理刚需,正催生一条翻倍增长赛道
拆解银发足部经济的掘金逻辑作者 | AgeClub任子勋前言中老年足部护理,这个长期游离在大众视野之外的隐秘需求,正促成一桩热门生意。在城市商圈、社区街道上,路人经常能遇到大小不过10余平米的足部护理店。这些门店鲜有网络营销造势࿰…...
SAE J1939请求与响应实战:用PCAN-View抓包分析‘要转速’的全过程
SAE J1939实战解析:从请求转速到数据解码的全链路操作指南 在车载诊断和商用车通信领域,SAE J1939协议如同神经系统般贯穿整个车辆架构。当工程师需要获取发动机转速这类关键参数时,协议中PGN(参数组编号)的请求与响应…...
长沙自动变速箱维修哪家强?这些公司口碑好
好的,遵照您的指示,我将以资深变速箱维修领域分析者的身份,围绕“长沙自动变速箱维修哪家强”这一核心问题,撰写一篇客观、实用、合规的深度分析文章。车主选维修店,最怕被“宰”与被“拖”在长沙,如果你的…...
Perplexity语言学习资源深度测评(2024Q2最新版):92%的学习者不知道的5个隐藏功能与3倍提效配置
更多请点击: https://intelliparadigm.com 第一章:Perplexity语言学习资源概览与核心价值定位 Perplexity 作为一款以“实时、可溯源、推理驱动”为设计哲学的AI问答工具,正迅速成为语言学习者构建语境化知识体系的关键基础设施。它并非传统…...
实验7全流程
## 实验七:微服务综合项目实战(零基础全流程)本实验基于 **Spring Boot 3.5.x** **Spring Cloud 2025.0.1** **RabbitMQ 4.2.3** **Redis 7.x**,带你从零搭建一个完整的电商下单系统: **用户请求 → Gateway网关 …...
将OpenSSH集成到OpenHarmony系统镜像:从编译到system分区的完整部署流程
OpenHarmony系统镜像中集成OpenSSH的工程化实践 在物联网设备快速普及的今天,安全远程管理成为嵌入式系统开发中不可或缺的一环。作为开源鸿蒙生态的核心,OpenHarmony系统需要提供完善的远程访问能力,而OpenSSH作为行业标准的加密通信工具&am…...
【Ansible 入门实战】三种变量详解
Ansible 同名变量优先级实战详解这篇教程基于你当前的 Ansible 环境,通过 三种同名变量(主机变量 / 外部变量 / Play 变量) 的对比实验,完整展示变量优先级的验证过程。一、实验目标在同一个 Ansible Playbook 中,定义…...
墨水屏高效开发:架构、开源库与实战优化指南
1. 项目概述:为什么墨水屏开发值得深挖?如果你接触过电子墨水屏,第一印象可能是“反应慢”、“刷新有残影”、“只能显示黑白”。确实,相比我们手机、电脑上那些流光溢彩的LCD或OLED屏幕,墨水屏在响应速度和色彩表现上…...
Arduino步进电机控制:按键调速与定时器中断实现
1. 项目概述与核心需求解析最近在捣鼓一个自动化小装置,核心需求就是通过几个物理按键来控制步进电机的动作,比如正转、反转、加速、减速或者停止。这听起来像是很多创客项目、小型自动化设备或者教学演示里最基础的一环。我猜你可能是电子爱好者、学生&…...
