3.13 结构体嵌套、大小及位域

news2024/11/15 20:31:51

目录

结构体嵌套结构体

结构体的大小

位域


结构体嵌套结构体

 含义

结构体中的成员可以是另一个结构体

 语法

struct  结构体名 {

    struct 结构体名   成员名;

     };

结构体中共同的变量可以单独放出来,单独封装一个结构体

结构体的大小

字节对齐

 含义

    字节对齐主要是针对结构体而言的,通常编译器会自动对其成员变量进行对齐,以提高数据存取的效率;

 作用

平台原因(移植原因): 不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。

性能原因: 数据结构(尤其是栈)应该尽可能地在自然边界上对齐。 原因在于,为了访问未对齐的内存,处理器需要作两次内存访问;而对齐的内存访问仅需要一次访问。 

 自身对齐

 默认对齐

 有效对齐

位域

定义

所谓的“位域”是把一个字节中的二进制位分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的对象用一个字节的二进制位域来表示。

 位域的一般形式:

struct 位域结构体名 {

位域列表;

};

 其中位域列表的形式为:

类型说明符  位域名:位域长度

与结构体的使用相似

注意:不要越界

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微服务篇:开始从头到尾搭建第一个微服务(小白)

微服务篇 我的一个微服务 手把手写微服务项目,从现在开始 文章目录 微服务篇环境搭建开发工具开发环境 一、创建项目:创建gitee链接1、登录 gitee 创建仓库2、 给项目起一个名字(本地名字要跟远端一致哦) panda3、打开IDEA创建项…

19. Unity - 2D游戏开发小记02 --- 伪透视图、2D物体碰撞、瓦片地图碰撞、素材缩放平铺

1. 伪视图 在2D游戏开发当中,当角色移动时,会发生物体与物体之间的前后遮挡。2D视图中的前后关系是由 Y 轴决定,y 值越小物体越靠前。unity的渲染应开启根据 y 值的大小进行渲染才能保证正确的遮挡效果,在菜单栏Editor–>project setting --> Graphic中按照下图方式…

MySQL之Doublewrite Buffer详解

前言 本文已收录在MySQL性能优化原理实战专栏,点击此处浏览更多优质内容。 上一篇文章MySQL之Adaptive Hash Index详解我们学习了InnoDB Adaptive Hash Index自适应哈希索引的工作原理。其本质是将频繁访问数据页的索引键值以“Key”放在缓存中,“Value”…

【微机原理】汇编指令之传送指令

目录 一、传送类指令 1.MOV 传送指令 2.XCHG 传送指令 二、LEA 有效地址传送指令 三.堆栈操作指令 (1)入栈指令:PUSH (2)出栈指令:POP 四、输入输出指令 (1)IN 输入指令 &#xff08…

nginx部署本地启动vue项目

需求:就是想在本地不运行vue项目,可以直接访问到打包后的vue项目 1.安装nginx nginx: download,这里我安装的1.12.2稳定版本 2.下载完直接得到一个压缩包,直接把它解压到一个目录 !!!&#x…

CSI指纹预处理(中值、均值、Hampel、维纳滤波、状态统计滤波器)

目录 前言 1、箱线法 2、中值滤波器 3、均值滤波器 4、Hampel滤波器 5、维纳滤波 6、状态统计滤波器 前言 因为设备、温度和实验室物品摆设等因素的影响,未经处理的CSI数据不能直接使用,需要对数据进行异常值处理以保证数据的稳定性,…

力扣刷题2023-05-04-1——题目:2614. 对角线上的质数

题目: 给你一个下标从 0 开始的二维整数数组 nums 。 返回位于 nums 至少一条 对角线 上的最大 质数 。如果任一对角线上均不存在质数,返回 0 。 注意: 如果某个整数大于 1 ,且不存在除 1 和自身之外的正整数因子,…

【前端】1、flex 布局

flex 布局目录 一、flex container 和 flex items二、用在 flex container 上的 CSS 属性(1) flex-direction(2) justify-content(3) align-items 三、用在 flex items 上的 CSS 属性 一、flex container 和 flex items 🎄 1、开启了 Flex 布局的元素叫 flex cont…

系统分析师---系统规划高频错题

系统规划---成本效益分析 评价信息系统经济效益常用的方法主要有成本效益分析法,投入产出分析法和价值工程方法。盈亏平衡法常用于销售定价; 可行性分析 系统规划是信息系统生命周期的第一个阶段,其任务是对企业的环境、目标以及现有系统的…

CAN总线(HALL库使用)

目录 1.CAN总线介绍 2.STM32中CAN总线配置 3.HALL库实验 1.CAN总线介绍 1.闭环特点:速度快,距离短(40m) 2.开环特点:速度慢,距离长(1000m) 2.STM32中CAN总线配置 stm32的can总线分…

体验 gpt4free

体验 gpt4free 什么是 gpt4free安装 ffmpeg启动 gpt4free访问 gpt4free gui其他 什么是 gpt4free GPT4Free 是一个由 xtekky 创建的基于 OpenAI GPT-4 和 GPT-3.5 的 API。它可以向用户提供类似于 OpenAI GPT-3 的功能,如文本生成、问答、翻译等。 GPT4Free 与 Ope…

2023前端面试上岸手册——VUE部分

目录 Vue 的基本原理双向数据绑定的原理MVVM、MVC、MVP 的区别slot 是什么?有什么作用?原理是什么?\$nextTick 原理及作用Vue 单页应用与多页应用的区别Vue 中封装的数组方法有哪些,其如何实现页面更新Vue data 中某一个属性的值发…

详解:搭建常见问题(FAQ)的步骤?

许多的Web用户都更加偏向于可信赖的FAQ页面,以此作为快速查找更多信息的方法。因为用户时间的紧缺,并且想知道产品的功能和能够提供的服务。构造精巧的FAQ页面是提供人们寻求信息的绝妙方法,而且还可以提供更多的信息。这就是为什么FAQ页面对…

1. C++面向过程

一、C简介 1.1 C的产生及其特点 从C语言发展演变而来,解决了C语言中存在的一些问题,并增加了对面向对象程序设计方法的支持 与其他高级语言相比,C语言可以直接访问物理地址;与汇编相比它具有良好的可读性和可移植性 C于1980年由…

【软考中级】2022下半年软件设计师案例分析题级答案

试题一(共15分) 阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。 【说明】 随着新能源车数量的迅猛增长,全国各地电动汽车配套充电桩急速增长,同时 也带来了充电桩计量准确性的问题。充电桩都需要配备相应的…

RabbitMQ-保证消息可靠性

RabbitMQ-保证消息可靠性 1.消息可靠性1.1.生产者消息确认1.1.1.修改配置1.1.2.定义Return回调1.1.3.定义ConfirmCallback 1.2.消息持久化1.2.1.交换机持久化1.2.2.队列持久化1.2.3.消息持久化 1.3.消费者消息确认1.3.1.演示none模式1.3.2.演示auto模式 1.4.消费失败重试机制1.…

API接口的应用

一、API接口的应用 API(Application Programming Interface,应用程序编程接口)接口在现代计算机科学中是一个非常重要的概念。API接口允许不同的应用程序、设备和服务进行交流、互操作和数据共享。下面我们将针对API接口的应用方向和场景进行…

计算机网络笔记:计算机网络体系结构(OSI七层模型、TCP/IP五层协议)

计算机网络体系结构 计算机网络是一个复杂的、具有综合性技术的系统,它由计算机系统、通信处理机、通信线路和通信设备、操作系统以及网络协议等组成。为了更好地描述计算机网络结构,使计算机网络系统有条不紊地处理工作,需要定义一种较好的…

Python中如何使用os模块和shutil模块处理文件和文件夹

os和shutil都是Python标准库中用于处理文件和文件夹的模块,它们都提供了许多常用的文件和文件夹操作功能,但是它们的使用场景和优势有所不同。 os模块提供了许多操作系统相关的功能,例如打开文件、读取文件、获取文件属性、创建目录、删除文件…

阿里云服务器ECS上安装Redis数据库流程by Alibaba Cloud Linux

阿里云服务器操作系统Alibaba Cloud Linux 2针对Redis应用进行了专项调优,相比社区版操作系统,Redis应用整体性能提升20%以上。Alibaba Cloud Linux 2内置Redis 6.0.5和Redis 3.2.12的yum源,执行sudo yum install命令即可部署Redis 6.0.5和Re…