结构体易忘点

结构体初始化

当我们去初始化一个结构体的时候,我们常常会按变量顺序初始化,但其实也可以不按顺序,同时也可以部分数据初始化。

结构体对齐

结构体里面的成员有一定的对齐规则,他不是每一个空间都存着有效数据的,有些空间是被浪费的,并且不能被访问。

原因:

1.我们不是所有的硬件都能访问到任意位置的数据的。

2.提高效率,对齐后的数据只需要访问一次,未对齐的数据要访问两次(32bit位的电脑一次只能访问4个字节,有些数据就会被两次分开访问)。

这是一直空间换时间的做法。

对齐规则如下

(1)第一个结构体成员放在偏移量为0处。

(2)从第二个成员开始,以后每个成员要对齐到成员对齐数的整数倍偏移位处。

成员对齐数:成员自身大小与默认对齐数的较小值,vs默认对齐数8,gcc无默认对齐数。

(3)对齐后的整体所占字节数要为所有成员中对齐数最大的整数倍。

(4)当存在嵌套结构体的情况,在放置结构体时,结构体的对齐数是所有成员变量(包含嵌套结构体的成员变量)的所占字节数最大值的整数倍。

具体的栗子如下:

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

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

相关文章

综合时如何计算net delay?

在PR阶段,互连线的延迟可以通过抽取net的rc值计算得到。而在综合阶段,因为没有实际的布局布线,便无法去抽取net上的rc值。那么,线负载模型(wire load model)便派上用场了。 所谓线负载模型,就是…

力扣上刷题之C语言实现(数组)

一. 简介 本文记录一下力扣的逻辑题。主要是数组方面的,使用 C语言实现。 二. 力扣上刷题之C语言实现 1. 两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target的那 两个 整数,并返回它们的数…

uni-app安装插件

1.通过插件市场安装https://ext.dcloud.net.cn 打开HBuilderX编辑器。 点击菜单栏中的“工具”->“插件安装”。 这里会看到已安装插件和安装新插件两个选项卡,点击安装新插件, 能看到一些核心插件,如果所需要的插件在核心插件里面有&…

PyCharm和VS Code 安装通义灵码,可本地安装包安装,解决插件安装不上问题

PyCharm和VS Code 安装通义灵码,可本地安装包安装,解决插件安装不上问题 PyCharm、VS Code 安装通义灵码介绍主要应用场景支持编程语言安装指南JetBrains IDEs 中安装指南步骤 1:准备工作步骤 2:在 JetBrains IDEs 中安装通义灵码…

【快速笔记】freeRTOS

第十八章 低功耗Tickless模式 睡眠模式:__WFI 中断唤醒 __WFE 事件唤醒 CPU CLK关闭 停止模式:RAM保持 中断唤醒 当 STM32F103 处于休眠模式的时候 Cortex-M3 内核停止运行,但是其他外设运行正常, 比如 NVIC、SRAM 等。 休眠模式的功耗比其他…

集运系统核心功能模块:打造高效集运仓日常管理

在跨境电商的快速发展背景下,集运业务作为物流环节中的重要一环,其效率和管理的精细化程度直接影响着客户体验和企业效益。集运系统作为提升管理效率的关键工具,需要具备一系列核心模块来确保业务的顺畅运行。以下是集运系统在日常管理中不可…

汇总:工业导管生产中 17种检测仪进行品质检测

定义 1)泛指做疏导用的管子。2)工业用导管即钻孔灌注桩水下浇灌砼导管。混凝土灌注导管用于大型的桥梁工程、中铁工程、公路工程、水电工程、高层地基的钻孔灌注桩的水下浇筑使用。 种类 工业导管种类繁多,主要包括钢管、铜管、不锈钢管、PVC…

golang操作mysql利器-gorm

1、傻瓜示例 GORM通过将数据库表中的数据映射到面向对象的模型中,简化了数据库操作,使得开发者可以很方便的使用代码来操作数据库,而无需编写SQL语句。 目前有个mysql表:miniprogram_orders,其存储了所有用户对应的订…

2023年全国研究生数学建模竞赛华为杯B题DFT类矩阵的整数分解逼近求解全过程文档及程序

2023年全国研究生数学建模竞赛华为杯 B题 DFT类矩阵的整数分解逼近 原题再现: 一、问题背景   离散傅里叶变换(Discrete Fourier Transform,DFT)作为一种基本工具广泛应用于工程、科学以及数学领域。例如,通信信号…

基于深度学习的手势识别算法(论文复现)

基于深度学习的手势识别算法(论文复现) 本文所涉及所有资源均在传知代码平台可获取 文章目录 基于深度学习的手势识别算法(论文复现)概述算法原理核心逻辑效果演示使用方式 概述 本文基于论文 Simple Baselines for Human Pose Es…

Sublime Text 3 相关设置

打开设置 { “font_size”: 16, // 字体大小 “save_on_focus_lost”: true, // 自动保存 }

YOLOv8改进系列,YOLOv8 Neck结构引入BiFPN

摘要 模型效率在计算机视觉中变得越来越重要。本文系统地研究了神经网络架构设计选择用于目标检测,并提出了几项关键优化以提高效率。首先,提出了一种加权双向特征金字塔网络(BiFPN),它允许轻松快速的多尺度特征融合;其次,我们提出了一种复合缩放方法,该方法同时均匀地…

MATLAB 在数学建模中的深入应用:从基础到高级实践

目录 前言 一、MATLAB基础知识 1.1 MATLAB工作环境简介 1.1.1 命令窗口(Command Window) 1.1.2 工作区(Workspace) 1.1.3 命令历史(Command History) 1.1.4 编辑器(Editor) 1…

Electron 安装包 asar 解压定位问题实战

背景 在开发 Electron 过程中,我们想知道 Electron 打包的最终形态是什么样的,以便我们能更好的理解 Electron 打包的过程,以及逆向来快速追踪一些问题,例如下面这个报错,以前这类报错都是靠猜,现在则可以…

矿场工程车检测数据集 4900张 工程车 带标注voc yolo

矿场工程车检测数据集 数据集描述 该数据集旨在用于矿场工程车的检测和分类任务,涵盖了多种常见的工程车辆类型。数据集包含了大量的工程车图像及其对应的标注信息,可用于训练计算机视觉模型,以识别和定位矿场中的不同工程车辆。 数据规模 …

《微信小程序实战(3) · 推广海报制作》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

web学习——day1

1.web标准 2.html和css 此时,学完这一部分,你web的具体的结构已经有了 但是呢,这还是太单调了,我们应该加点儿样式,这就该用到CSS了 CSS引入方式 样式1:颜色 样式2:哪怕对于同一类事物&#xf…

一问详解Unity下RTMP推送|轻量级RTSP服务|RTSP|RTMP播放模块说明

技术背景 好多开发者,对Unity下的模块,不甚了解,实际上,除了Windows/Linux/Android/iOS Native SDK,大牛直播SDK发布了Unity环境下的RTMP推流|轻量级RTSP服务(Windows平台Linux平台Android平台&#xff09…

利用ENVI进行遥感图像的镶嵌与剪切

使用ENVI 5.6的Toolbox中的Seamless Mosaic工具 在跳出的界面中添加需要进行镶嵌的遥感影像 点击Color Correction选择Overlap Area Only 在Seamlines/Feathering中选择Seamline Feathering 点击Export,0utput Format选择ENVI在0utput Filename选择文件夹Date Ignor…

Linux安装Docker以及Docker入门操作

Docker概述 Docker是一个开源的应用性容器引擎 , 让开发者可以打包他们的应用以及依赖包到可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口(相互之间是隔离的,独立的,相互不影响的). Docker 是一个…