当前位置: 首页 > news >正文

(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&#xff…...

[ 常用工具篇 ] CobaltStrike(CS神器)基础(一) -- 安装及设置监听器详解

🍬 博主介绍 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…...

Redis集群

Redis集群 本章是基于CentOS7下的Redis集群教程,包括: 单机安装RedisRedis主从Redis分片集群 1.单机安装Redis 首先需要安装Redis所需要的依赖: yum install -y gcc tcl然后将课前资料提供的Redis安装包上传到虚拟机的任意目录&#xff…...

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实现读取表中的数据&#xff0c;生成excel文件 1.简介 本次使用java代码整合kettle9.3版本&#xff0c;数据库使用mysql。 2.jar包导入 项目需要依赖部分kettle中的jar包&#xff0c;请将这部分jar包自行导入maven仓库。 <dependency><groupId…...

分享微信点餐小程序搭建步骤_微信点餐功能怎么做

线下餐饮实体店都开始摸索发展网上订餐服务。最多人选择的是入驻外卖平台&#xff0c;但抽成高&#xff0c;推广还要另买流量等问题&#xff0c;也让不少商家入不敷出。在这种情况下&#xff0c;建立自己的微信订餐小程序&#xff0c;做自己的私域流量是另一种捷径。那么&#…...

4、数组、切片、map、channel

目录一、数组二、切片三、map四、channel五、引用类型一、数组 数组&#xff1a; 数组是块连续的内存空间&#xff0c;在声明的时候必须指定长度&#xff0c;且长度不能改变所以数组在声明的时候就可以把内存空间分配好&#xff0c;并赋上默认值&#xff0c;即完成了初始化数组…...

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个简历模板网站&#xff0c;免费下载&#xff0c;建议收藏&#xff01; 2023用最漂亮的简历模板&#xff0c;让面试官眼前一亮。 1、菜鸟图库 个人简历模板|WORD文档模板免费下载 - 菜鸟图库 菜鸟图库除了有超多设计类素材之外&#xff0c;还有很多办公类素材&#…...

【CSS】元素居中总结-水平居中、垂直居中、水平垂直居中

【CSS】元素居中一、 水平居中1.行内元素水平居中&#xff08;1&#xff09;text-align2.块级元素水平居中2.1 margin&#xff08;1&#xff09;margin2.2布局&#xff08;1&#xff09;flex justify-content&#xff08;推荐&#xff09;&#xff08;2&#xff09; flexmargin…...

spring实现AOP

文章目录前言一、AOP的底层实现原理二、AOP的两种开发模式1.使用xml配置文件1.1 添加AOP依赖1.2 创建UserService1.3创建UserServiceImpl1.4创建通知类1.5 创建applicationContext.xml&#xff08;添加aop约束&#xff09;1.6 测试2.使用注解开发2.1 创建bean.xml文件配置注解方…...

neovim搭建cpp环境

文章目录Windowns下NeoVim搭建cpp环境NeoVim安装插件vim-plugindentLinevim-airlinectagstagbarcoc.vimWindowns下NeoVim搭建cpp环境 在开发过程中习惯在DIE环境中使用vim作为编辑器&#xff0c;在单独的编辑器也常使用gvim图形化编辑器。最近看到NeoVim的特性及兼容性方面不输…...

SpringBoot AES加密 PKCS7Padding 模式

AES 简介&#xff1a;DES 全称为Data Encryption Standard&#xff0c;即数据加密标准&#xff0c;是一种使用密钥加密的块算法&#xff0c;1977年被美国联邦政府的国家标准局确定为联邦资料处理标准&#xff08;FIPS&#xff09; AES 密码学中的高级加密标准&#xff08;Advan…...

按键输入驱动

目录 一、硬件原理 二、添加设备树 1、创建pinctrl 2、创建节点 3、检查 编译复制 三、修改工程模板​编辑 四、驱动编写 1、添加keyio函数 2、添加调用 3、驱动出口函数添加释放 4、添加原子操作 5、添加两个宏定义 6、初始化原始变量 7、打开操作 8、读操作 总体代…...

2023年第七周总周结 | 开学倒数第三周

为什么要做周总结&#xff1f; 1.避免跳相似的坑 2.客观了解上周学习进度并反思&#xff0c;制定可完成的下周规划 一、上周问题解决情况 晚上熬夜导致第二天学习状态不好 这周熬夜一天&#xff0c;晚上帮亲戚修手机到22:30&#xff0c;可能是晚上自己的事什么都没做&#xff…...

Springboot扫描注解类

Springboot扫描注解类的入口在AbstractApplicationContext的refresh中&#xff0c;对启动步骤不太了解的&#xff0c;可参考https://blog.csdn.net/leadseczgw01/article/details/128930925BeanDefinitionRegistryPostProcessor接口有多个实现类&#xff0c;扫描Controller、Se…...

Apache日志分析器

您的Apache HTTP服务器生成的日志数据是信息的宝库。使用这些信息&#xff0c;您可以判断您服务器的使用情况、找出漏洞所在&#xff0c;并设法改进服务器结构和整体性能。审核您的Apache日志可在以下情况派上用场&#xff0c;其中包括&#xff1a;识别和纠正频繁出现的错误以增…...

啪,还敢抛出异常

&#x1f649; 作者简介&#xff1a; 全栈领域新星创作者 &#xff1b;天天被业务折腾得死去活来的同时依然保有对各项技术热忱的追求&#xff0c;把分享变成一种习惯&#xff0c;再小的帆也能远航。 &#x1f3e1; 个人主页&#xff1a;xiezhr的个人主页 前言 去年又重新刷了…...

Apache JMeter 5.5 下载安装以及设置中文教程

Apache JMeter 5.5 下载安装以及设置中文教程JMeter下载Apache JMeter 5.5配置环境变量查看配置JDK配置JMeter环境变量运行JMeter配置中文版一次性永久设置正文JMeter 下载Apache JMeter 5.5 官方网站&#xff1a;Apache JMeter 官网 版本介绍&#xff1a; 版本中一个是Bina…...

string类模拟实现

了解过string常用接口后&#xff0c;接下来的任务就是模拟实现string类。 目录 VS下的string结构 默认成员函数和简单接口 string结构 c_str()、size()、capacity()、clear()、swap() 构造函数 拷贝构造函数 赋值重载 析构函数 访问及遍历 容量操作 reserve resize …...

cadence SPB17.4 S032 - allegro - 保存/载入光绘层定义

文章目录cadence SPB17.4 S032 - allegro - 保存/载入光绘层定义概述保存光绘层在新板子中载入已经保存的相同类型老板子定义好的光绘层定义文件碎碎念ENDcadence SPB17.4 S032 - allegro - 保存/载入光绘层定义 概述 以前布线完成, 准备出板厂文件时, 总是要手工重新建立光绘…...

微服务实战--高级篇:分布式缓存 Redis

分布式缓存 – 基于Redis集群解决单机Redis存在的问题 单机的Redis存在四大问题&#xff1a; 1.Redis持久化 Redis有两种持久化方案&#xff1a; RDB持久化AOF持久化 1.1.RDB持久化 RDB全称Redis Database Backup file&#xff08;Redis数据备份文件&#xff09;&#xf…...

中国建设部网站关于资质/网站seo专员招聘

在做登录防止用户没有登录而访问其他web资源的时候&#xff0c;写了一个过滤器&#xff0c;却跳出not create session after the response commited&#xff0c;经检测&#xff0c;是写了多余的chain.doFilter(request,response); 即写了两次的chain.doFilter(request,respons…...

企业网站的形式有哪些/互联网广告代理

前言&#xff1a;为啥要用无人值守安装系统&#xff1f;很简单的答案&#xff01;就两个&#xff01;一个是方便日常工作&#xff0c;另一个就是可以用来装逼&#xff01;常规装系统的办法有哪些&#xff1f;光盘安装系统>一个服务器DVD内置光驱百千块&#xff0c;百台服务器…...

乐清建站公司哪家好/推广关键词怎么设置

文章目录概述安装Java VS Scalaval 和 var基本数据类型lazy在Scala中的应用开发工具IDEAMaven概述 https://www.scala-lang.org/ Scala combines object-oriented and functional programming in one concise, high-level language. Scala’s static types help avoid bugs in…...

wordpress主题可以更改主页布局/网络营销的推广

createWriteStream是Node.js中的一个方法&#xff0c;可以用来创建一个可写流。可写流是一种用于写入数据的流。它允许我们在不断写入数据的同时将数据写入文件或其他目标。可写流是流的一种&#xff0c;流是Node.js中的一种抽象概念&#xff0c;表示一个数据流的生成器。可写流…...

如何设计网站导航/我想做网络推广找谁

我这里从操作目的出发说明linux命令&#xff0c;而不是将linux命令逐个说明用法、注意事项&#xff0c;毕竟我只是一个测试人员&#xff0c;而不是一个专职的linux运维人员&#xff0c;无须掌握所有的命令&#xff0c;掌握每个命令的所有用法&#xff1b;1、查看当前目录下有哪…...

做网站需要备案吗/沈阳网站关键词优化多少钱

一、定位 定位&#xff1a;定位是一种更加高级的布局手段。通过定位可以将元素放在页面的任意位置。position&#xff1a;通过position来设置定位。可选值:static 默认值&#xff0c;元素是静止&#xff0c;没有开启定位relative 开启元素的相对定位absolute 开启元素的绝对…...