(C语言)自定义类型,枚举与联合
问:
1. 结构体在自引用的时候不能怎么样?可以怎么样?
2. Solve the problems:自定义一个学生结构体类型,要包含姓名,性别,年龄,六科成绩,家乡(也为结构体,包含家乡名称,家乡邮编,家乡简介,家乡历史)?
3. 结构体成员的对齐数就是什么与什么的什么?除什么外,每个成员的什么的什么就是什么?结构体的总大小,也就是什么?是所有成员什么的什么的什么?如果结构体成员是什么?就怎么理解?如果结构体成员也是什么?那么它的什么怎么算?
4. Solve the problems:想计算一下之前创建的学生结构体内存消耗是多少字节?
5. 结构体内存对齐本质上是一种什么做法?
6. 有一个宏叫什么可以验证结构体内存对齐?它计算什么的什么?两个参数是什么?
7. 设计结构体的时候要怎么样?
8. 结构体传参要传什么?
9. 位段也称为什么?其实还是什么?什么一模一样?好处在于什么?
10. 位段的成员类型必须是什么?并且都是怎么样的?每个成员后面的什么表示什么呢?有时会有什么发生?
11. 画图说明位段的内存分配是怎么样的?
12. 位段本来就是来怎么样的?因此与什么无关?
13. Solve the problems:Jeff不相信位段的存在,怎么样来证明位段的存在?
14. 枚举的关键字是什么?而联合体呢?
15. 什么和什么的什么,什么的什么都是与什么怎么样?
16. 联合体的特点是什么?意味着什么与什么?
17. 联合体大小计算需要先找出什么与什么?对于什么而言,什么就是什么?联合体大小应怎么样?最后还要对齐到什么的什么?
18. 联合体在内存中的存放可以用什么概括?
19. Solve the problems:我想用联合体判断一下当前机器的大小端字节序存储,并且顺便计算一下联合体大小,该怎么办?
20. Solve the problems:如何用联合体把16进制数11223344修改为11223355?
答:
1. 包含与自己类型一样的结构体,包含一个同类型的指针。
2.
//解决方法
struct Home
{char name[5]; char post[6];char introduce[14];int history;
};
struct Stu
{char name[6];char sex[3];int age;float score[6];struct Home place;
};3. 自身大小,默认对齐数,较小值,第一个成员,对齐数,整数倍,起点偏移量,所占字节个数,对齐数,最大值,整数倍,数组,把数组元素看成一个个相同的成员,结构体,起点偏移量,自己成员对齐数的最大值的整数倍。
4. 72。
5. 拿空间换取时间。
6. offsetof,结构体成员,起始偏移量,结构体类型,结构体成员。
7. 尽量让占用空间小的成员集中在一起。
8. 结构体指针。
9. 位段式的结构体,结构体,作用与功能,节省空间。
10. 整型家族,同类型的,冒号与数字,该成员只占用这么多比特位,截断。
11.

12. 节省空间,结构体内存对齐。
13. 可以自己去调试内存里面验证。
14. enum,union。
15. 联合体,联合体变量,创建,联合体成员,访问,结构体,高度雷同。
16. 只有一个没水的公厕,我在拉时你不能用,我拉完后屎还是在的。
17. 最大成员的大小,所有成员最大对齐数,数组成员,成员大小,元素大小之和,≥最大成员大小,最大对齐数,整数倍。
18. 同一起点。
19.
//解决方法
union Elon
{int a;char b;
};
int main()
{union Elon x;x.b = 0;x.a = 1;if (x.b == 1){printf("小端\n");}else{printf("大端\n");}printf("%d\n", sizeof(union Elon));return 0;
}20.
union test
{int a;char b;
};
int main()
{union test m;m.a = 0x11223344;m.b = 0x55;printf("%x\n", m.a);return 0;
}
相关文章:
(C语言)自定义类型,枚举与联合
问:1. 结构体在自引用的时候不能怎么样?可以怎么样?2. Solve the problems:自定义一个学生结构体类型,要包含姓名,性别,年龄,六科成绩,家乡(也为结构体&#…...
node.js服务端笔记文档学会写接口,学习分类:path、包、模块化、fs、express、中间件、jwt、开发模式、cors。
node.js 学习笔记 node.js服务端笔记文档学会写接口,path、包、模块化、fs、express、中间件、JWT、开发模式、cors。 gitee:代码接口笔记 1什么是node.js nodejs 是基于ChromeV8,引擎的一个javaScript 运行环境。node.js 无法使用DOM和BO…...
初始C++(三):引用
文章目录一.引用的概念二.引用的使用1.引用作为输出型参数2. 引用作为函数返回值3.const引用三.引用的一些小问题四.引用和指针五.引用和指针的区别一.引用的概念 引用的作用是给一个已经存在的变量取别名,编译器不会为引用变量开空间,引用变量和被他引…...
【前端】参考C站动态发红包界面,高度还原布局和交互
最近有些小伙伴咨询博主说前端布局好难,其实都是熟能生巧! 模仿C站动态发红包界面,cssdiv实现布局,纯javascript实现交互效果 目录 1、界面效果 2、界面分析 2.1、整体结构 2.2、标题 2.3、表单 2.4、按钮 3、代码实现 3.…...
VR全景带你浪漫“狂飙”情人节,见证甜蜜心动
当情人节遇上VR,足以让情侣过一个难忘的情人节。马上情人节就要到了,大家是不是还在绞尽脑汁的想着,如何和另一半过一个浪漫的情人节呢?老套的剧情已经不能吸引人了,让我们看看VR全景给情人节带来了哪些不同的体验吧&a…...
Linux系统安全之iptables防火墙
目录 一.iptables防火墙基本介绍 二.iptables的四表五链 三.iptables的配置 1.iptables的安装 2.iptables防火墙的配置方法 四.添加、查看、删除规则 1.查看(fliter)表中的所有链 iptables -L 2.使用数字形式(fliter)表所有链 查看输出结果 iptables -nL 3.清空表中所…...
【C#基础】C# 变量与常量的使用
序号系列文章1【C#基础】C# 程序通用结构2【C#基础】C# 基础语法解析3【C#基础】C# 数据类型总结文章目录前言一. 变量(variable)1,变量定义及初始化2,变量的类别3,接收输出变量二. 常量(constantÿ…...
[ 常用工具篇 ] CobaltStrike(CS神器)基础(一) -- 安装及设置监听器详解
🍬 博主介绍 👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…...
Redis集群
Redis集群 本章是基于CentOS7下的Redis集群教程,包括: 单机安装RedisRedis主从Redis分片集群 1.单机安装Redis 首先需要安装Redis所需要的依赖: yum install -y gcc tcl然后将课前资料提供的Redis安装包上传到虚拟机的任意目录ÿ…...
00---C++入门
1. C关键字(C98) C总计63个关键字,C语言32个关键字 2. 命名空间 在C/C中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进…...
Spring-事务2
文章目录前言一、事务的特性(ACID)二、事务的隔离级别三、spring中的事务平台事务管理器.事务定义ISOLation_XXX:**事务隔离级别.**PROPAGATION_XXX:**事务的传播行为**.事务状态关系:四、使用XML文件配置事务1、 搭建…...
Windows Git Bash 配置
Windows Git Bash 配置 本文参考的文章: 在 Windows 的 Git Bash 中使用包管理器 - iris (ginshio.org)Git bash 安装 pacman & Windows 解压 zst 文件 | 伪斜杠青年 (lckiss.com) 一、Git的安装 Git 的安装应该是都会的,但还是应该说以下&#…...
java代码整合kettle9.3实现读取表中的数据,生成excel文件
java代码整合kettle9.3实现读取表中的数据,生成excel文件 1.简介 本次使用java代码整合kettle9.3版本,数据库使用mysql。 2.jar包导入 项目需要依赖部分kettle中的jar包,请将这部分jar包自行导入maven仓库。 <dependency><groupId…...
分享微信点餐小程序搭建步骤_微信点餐功能怎么做
线下餐饮实体店都开始摸索发展网上订餐服务。最多人选择的是入驻外卖平台,但抽成高,推广还要另买流量等问题,也让不少商家入不敷出。在这种情况下,建立自己的微信订餐小程序,做自己的私域流量是另一种捷径。那么&#…...
4、数组、切片、map、channel
目录一、数组二、切片三、map四、channel五、引用类型一、数组 数组: 数组是块连续的内存空间,在声明的时候必须指定长度,且长度不能改变所以数组在声明的时候就可以把内存空间分配好,并赋上默认值,即完成了初始化数组…...
270 uuid
270 uuid 用途 For the creation of RFC4122 UUIDs 可靠性 10000 星星 适应于浏览器或者服务器 官网链接 https://www.npmjs.com/package/uuid https://github.com/uuidjs/uuid 基本使用 import { v4 as uuidv4 } from uuid; uuidv4(); // ⇨ 9b1deb4d-3b7d-4bad-9bdd-2b0d7b3d…...
2023最新简历模板免费下载
下面分享5个简历模板网站,免费下载,建议收藏! 2023用最漂亮的简历模板,让面试官眼前一亮。 1、菜鸟图库 个人简历模板|WORD文档模板免费下载 - 菜鸟图库 菜鸟图库除了有超多设计类素材之外,还有很多办公类素材&#…...
【CSS】元素居中总结-水平居中、垂直居中、水平垂直居中
【CSS】元素居中一、 水平居中1.行内元素水平居中(1)text-align2.块级元素水平居中2.1 margin(1)margin2.2布局(1)flex justify-content(推荐)(2) flexmargin…...
spring实现AOP
文章目录前言一、AOP的底层实现原理二、AOP的两种开发模式1.使用xml配置文件1.1 添加AOP依赖1.2 创建UserService1.3创建UserServiceImpl1.4创建通知类1.5 创建applicationContext.xml(添加aop约束)1.6 测试2.使用注解开发2.1 创建bean.xml文件配置注解方…...
neovim搭建cpp环境
文章目录Windowns下NeoVim搭建cpp环境NeoVim安装插件vim-plugindentLinevim-airlinectagstagbarcoc.vimWindowns下NeoVim搭建cpp环境 在开发过程中习惯在DIE环境中使用vim作为编辑器,在单独的编辑器也常使用gvim图形化编辑器。最近看到NeoVim的特性及兼容性方面不输…...
IDEA 2023.2 版本中,如何一键开启Services面板管理你的Spring Boot微服务集群?
IDEA 2023.2 版本中如何高效管理Spring Boot微服务集群 微服务架构的流行让开发者面临一个现实挑战:如何在本地开发环境中高效管理多个同时运行的Spring Boot服务。传统方式需要逐个启动、切换终端查看日志,既浪费时间又容易造成混乱。JetBrains IDEA作为…...
立法强制技术目标为何违背工程创新规律?
1. 项目概述:当立法者试图为工程目标“画图纸”作为一名在电子工程领域摸爬滚打了十几年的工程师,我经常在技术社区和行业媒体上看到一种让我既无奈又担忧的讨论:立法机构试图通过一纸法令,来规定某个具体技术目标必须在未来某个时…...
逻辑表达式与真值表转换
逻辑表达式与真值表转换 真值表与逻辑表达式是数字电路设计的两种等价表示,掌握它们之间的转换是基本功。 🎯 本章学习要点 理解真值表的结构和表示方法掌握从真值表写出逻辑表达式(最小项之和)掌握从逻辑表达式列出真值表了解最…...
独立语音AI创业必读,ElevenLabs Independent计划全链路解析:从白名单内测→额度扩容→月度用量审计→续期失败预警
更多请点击: https://intelliparadigm.com 第一章:ElevenLabs Independent计划的战略定位与生态价值 ElevenLabs Independent 计划并非单纯的技术授权项目,而是面向独立开发者、开源创作者与小型 AI 应用团队构建的可持续协作基础设施。其核…...
别再乱接电源了!STM32的VDDA、VSSA、VBAT引脚,一个没接对,ADC采样全是噪声
STM32电源设计实战:VDDA、VSSA与VBAT的噪声抑制艺术 当你的STM32项目遇到ADC采样值跳变、RTC计时不准或程序下载失败时,电源引脚的设计往往是罪魁祸首。许多工程师在PCB布局时,对这些看似简单的电源引脚处理过于随意,结果在调试阶…...
别再死记硬背CTL公式了!用UPPAAL模拟器手把手带你理解A[]和E<>的区别
别再死记硬背CTL公式了!用UPPAAL模拟器手把手带你理解A[]和E<>的区别 刚接触形式化验证工具UPPAAL时,最令人头疼的莫过于那些晦涩难懂的CTL(计算树逻辑)公式。A[]、E<>这些符号组合看起来像天书,教科书上的…...
从业者必看:医药资质认证服务核心知识梳理
如果你是初创医疗器械贸易商创始人、医美诊所创业者、连锁药店负责人或是医药电商运营人员,正面临缺证无法入驻平台、自行办理流程繁琐反复被驳回、赶大促节点急需下证等问题,想要了解医药资质认证服务相关内容,这篇科普内容会为你梳理清楚全…...
Spring AI 2.0 开发Java Agent智能体 - 会话记忆(Chat Memory)
大家好,我是Java1234_小锋老师,最近更新《2027版本 Spring AI 2.0 开发Java Agent智能体 视频教程》专辑,感谢大家支持。本课程主要介绍和讲解Spring AI 2.0简介,Spring AI 2.0 HelloWorld搭建,Advisors — 拦截器模式…...
Simulink进阶:用S-Function Builder封装你的C语言电机控制算法(以MTPA为例)
Simulink进阶:用S-Function Builder封装C语言电机控制算法实战指南 在电机控制领域,算法验证环节常常面临一个关键矛盾:DSP嵌入式代码的高效性与Simulink系统级仿真的可视化优势如何兼得?我曾参与过一个永磁同步电机控制项目&…...
从“抄答案”到“会解题”:我是如何利用头歌实训平台,真正掌握Python数据分析的?
从“抄答案”到“会解题”:我的Python数据分析思维进阶之路 记得第一次打开头歌实训平台的Python数据分析题目时,我像大多数初学者一样,迫不及待地寻找"正确答案"。复制、粘贴、运行——看到绿色通过提示的瞬间,以为自己…...
