GCC有三种影响内存对齐的开关:

首先是命令行参数 –fpack_struct=n (n只可以是1,2,4,8等2的幂,而且要小于平台默认的对齐字节数,否则不会生效)

其次是#pragma pack(n) (取值同上述一样,否则也不会生效,而且不怎么会有提示,编译器会有警告)

最有效的则是 __attribute__((aligned(n)))  这个n也是2的幂,但是没有平台的约束限制

转载于:https://www.cnblogs.com/jans2002/p/4234349.html

GCC的内存边界对齐相关推荐

  1. c#编程指南(十二) 平台调用P-INVOKE完全掌握, 结构体边界对齐和内存布局

    在使用结构体指针,进行C#和C++的互相调用.边界对齐是一个大问题,因为边界对齐问题,结构体的成员并不是顺序在内存一个挨着一个的排序. 而且在C++中可以使用#pragma pack(n)改变边界对齐 ...

  2. linux0.12内核---关于内存寻址与4k边界对齐

    以4G大小的物理内存为例,其可以存储4G(4,294,967,296)个字节(每个字节8bit(位)),每个字节在内存中可以看做是按照数组样式向下排列,因此要想对所有字节进行寻址,那么就需要对每个字节 ...

  3. 更改结构体的内存字节对齐方式--经典

    结构体字节对齐 http://blog.163.com/ecy_fu/blog/static/4445126200910603739941/ http://hi.baidu.com/skyland_l ...

  4. C语言内存字节对齐小结

    在C语言面试和考试中经常会遇到内存字节对齐的问题.今天就来对字节对齐的知识进行小结一下. 首先说说为什么要对齐.为了提高效率,计算机从内存中取数据是按照一个固定长度的.以32位机为例,它每次取32个位 ...

  5. C语言精要总结-内存地址对齐与struct大小判断篇

    在笔试时,经常会遇到结构体大小的问题,实际就是在考内存地址对齐.在实际开发中,如果一个结构体会在内存中高频地分配创建,那么掌握内存地址对齐规则,通过简单地自定义对齐方式,或者调整结构体成员的顺序,可以 ...

  6. Hello C(八)——内存字节对齐

    一.内存字节对齐简介 1.内存字节对齐 计算机中内存空间都是按照字节划分的,从理论上讲对任何类型的变量的访问可以从任何地址开始,但是在程序实际编译过程中,编译器会对数据类型在编译过程中进行优化对齐,编 ...

  7. 内存地址对齐问题研究所分析

    1.指针对齐问题 CPU一般要求指针的值(内存地址)要与它的指向类型数据的尺寸相匹配.例如,2个字节的数据类型被访问的地址值为 2 的倍数,4个字节的数据类型(如 int)被访问的地址值是 4 的倍数 ...

  8. 详解结构体、类等内存字节对齐

    先说个题外话:早些年我学C程序设计时,写过一段解释硬盘MBR分区表的代码,对着磁盘编辑器怎么看,怎么对,可一执行,结果就错了.当时调试也不太会,又根本没听过结构体对齐这一说,所以,问题解决不了,好几天 ...

  9. windows和Linux内存的对齐方式

    一.内存对齐的初步解说 内存对齐能够用一句话来概括: "数据项仅仅能存储在地址是数据项大小的整数倍的内存位置上" 比如int类型占用4个字节,地址仅仅能在0,4,8等位置上. 例1 ...

最新文章

  1. 打包图片上传cdn_紧抓5G新时代机遇 又拍云创新发展CDN行业
  2. Apache+PHP in MAC
  3. 数据库服务器属于用电信息采集,智能小区用电信息采集服务器系统和数据处理方法专利_专利查询 - 天眼查...
  4. Python使用tkinter构建一个多元回归预测模型GUI界面(接受用户输入数据并给出模型推理结果)
  5. 超大数据下大批量随机键值的查询优化方案
  6. 网络工程师的职业发展路线
  7. 排序算法 —— 选择排序
  8. C#各种配置文件使用,操作方法总结
  9. 归档-软考部分科目的考察内容
  10. cmd执行bat结果不回显_cmd - 如何在bat文件中调用另一个bat文件
  11. java多线程thread使用_Java多线程——thread及runnable的基本使用及交替执行
  12. Diskgenius硬盘处理软件
  13. VMware 虚拟机安装 CentOS 7.2 系统
  14. SAP那些事-理论篇-7-SAP的优势和劣势
  15. 常见鸟的种类及特点_湿地鸟类种类及分布特点
  16. 程序员,职场上请远离这种人!
  17. 揭秘《英雄联盟》的游戏数据服务器
  18. 浪潮服务器安装windows2008系统,浪潮NF5280M3安装Windows Server 2008 R2注意事项
  19. 字节跳动2023届校招薪资盘点!
  20. 计算机软件过期黑屏怎么办,Adobe flashplayer过期怎么办

热门文章

  1. Secure-CRT使用技巧
  2. Overview-ISA-2004-SP3
  3. 网络空间站是计算机,超级病毒或入侵国际空间站生命维持计算机
  4. 数据结构(C语言实现)勘误
  5. 【正一专栏】共享单车那些事儿
  6. ReadyFor4GB破解win7支持4G内存恢复到原系统
  7. CentOS 6.3下源码安装LAMP(Linux+Apache+Mysql+Php)环境
  8. yolov5训练_YoloV5模型训练实战教程:Kaggle全球小麦检测竞赛
  9. AJAX ||JQeury实现方式||原生的JS实现方式(了解)
  10. Python 技术篇-不使用os模块判断指定路径是文件还是文件夹,使用pathlib库判断文件和文件夹