博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
内存对齐
阅读量:6821 次
发布时间:2019-06-26

本文共 562 字,大约阅读时间需要 1 分钟。

参考地址:

 

分析过程:
  1) 成员数据对齐
  #pragma pack(4)  //gcc 默认为4   struct test_t {
  int a; /* int型,长度4 = 4 按4对齐;起始offset=0 0%4=0;存放位置区间[0,3] */   char b; /* char型,长度1 < 4 按1对齐;起始offset=4 4%1=0;存放位置区间[4] */   short c; /*short型, 长度2 < 4 按2对齐;起始offset=6 6%2=0;存放位置区间[6,7] */   char d[6]; /* char型,长度1 < 4 按1对齐;起始offset=8 8%1=0;存放位置区间[8,D] */   };
成员总大小=15
  2) 整体对齐   整体对齐系数 = min((max(int,short,char), 4) = 4   整体大小(size)=$(成员总大小) 按 $(整体对齐系数) 圆整 = 16 /*16%4=0*/

      因此最终大小为 16

参考

     

struct test {
int a; char b; short c; char d[6]; };   
sizeof(fuck) = 16
 

转载地址:http://mqazl.baihongyu.com/

你可能感兴趣的文章
SpringMVC权限管理
查看>>
ET120以太网环回器介绍
查看>>
ActiveMQ快速入门
查看>>
java自学篇之程序设计基础
查看>>
swiper的基础使用(五)
查看>>
Windows Server 2012R2 Hyper-v之虚拟机复制(2)
查看>>
大数据各种实用网站
查看>>
Linux系统启动过程
查看>>
使用Dnsmasq 部署GPXE 安装 Centos7
查看>>
我的友情链接
查看>>
Windows 2012 Hyper-V Step by Step (四) 创建iSCSI映射
查看>>
我的友情链接
查看>>
Nginx+Keepalived(带Nginx监控脚本)
查看>>
我的友情链接
查看>>
利用SVN的post-commit钩子实现多项目自动同步
查看>>
linux 的ping 命令
查看>>
java基础
查看>>
反射之获取类,方法等
查看>>
TechEd 2012 微软技术大会简介
查看>>
ajax框架之DWR项目运行报错之org.apache.commons.logging.LogFactory
查看>>