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

#pragma pack(1)

#pragma pack(1)的意义

设置结构体的边界对齐为1个字节,也就是所有数据在内du存中是连续存储的。
比如你在C语言中定义下面这样的结构体:
struct s {
char ch;
int i;
};

编译器为了让程序跑得跟快,减少CPU读取数据的指令周期,对结构体的存储进行优化。实际上第一个char型成员虽然本来只有1个字节,但实际上却占用掉了4个字节,为的是让第二个int型成员的地址能够被4整除。因此实际占用的是8个字节。

而#pragma pack(1)让编译器将结构体数据强制连续排列,这样的话,sizeof(struct s)输出的结果就是5了。

结论:意义就是节省内存资源,但是效率会降低。

ps,结尾的地方用#pragma pack() 取消强制对齐

相关文章:

  • 联动枚举设计
  • 视频批量添加透明水印,必须用这个方法
  • JS获取/修改文本框输入的内容value,修改div标签中的内容:innerHTML、innerTest
  • 我的世界Minecraft Java开服教程(Windows)开服器开服包下载开服网站服务器开服核心开服端开服软件mac版Java启动器资源包
  • java计算机毕业设计物业管理系统源码+系统+数据库+lw文档+mybatis+运行部署
  • Linux下把Tomcat做成服务,并开机自启(方式2-systemctl)
  • java计算机毕业设计西宁市农副产品物流信息系统源码+系统+数据库+lw文档+mybatis+运行部署
  • Python高校学生档案管理系统毕业设计源码071528
  • ​Linux·i2c驱动架构​
  • git代码仓库更换
  • SS【1】:转置卷积与膨胀卷积
  • tensorflow2从入门到精通——自编码器系列原理以及实现
  • python的opencv操作记录(五) - 空间域与频域转换
  • java学习day41(JavaWeb)JavaScript高级
  • 训练数据有缺陷?TrustAI来帮你!
  • Google 是如何开发 Web 框架的
  • “大数据应用场景”之隔壁老王(连载四)
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • javascript 总结(常用工具类的封装)
  • js面向对象
  • Vue ES6 Jade Scss Webpack Gulp
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 第十八天-企业应用架构模式-基本模式
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 手写双向链表LinkedList的几个常用功能
  • 跳前端坑前,先看看这个!!
  • 网络应用优化——时延与带宽
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 延迟脚本的方式
  • 交换综合实验一
  • #HarmonyOS:基础语法
  • #pragma 指令
  • (+4)2.2UML建模图
  • (12)目标检测_SSD基于pytorch搭建代码
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (二)丶RabbitMQ的六大核心
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (十)T检验-第一部分
  • (四)linux文件内容查看
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .sh 的运行
  • :not(:first-child)和:not(:last-child)的用法
  • @Async注解的坑,小心
  • [ 代码审计篇 ] 代码审计案例详解(一) SQL注入代码审计案例
  • [AIGC] Redis基础命令集详细介绍
  • [Android] Android ActivityManager
  • [Angular 基础] - 指令(directives)
  • [BJDCTF 2020]easy_md5