关于内存对齐的理解
来源:互联网 发布:什么是java虚拟路径 编辑:程序博客网 时间:2024/05/16 14:02
有一下几个结构
struct s1
{
--------------------
char c;
char c2;
short sh;
----------------------
int i;
};
struct s2
{
char c;
short sh;
----------------------
int i;
----------------------
char c2;
};
(假设编译器开启 内存对齐 选项,且机器的内存对齐为4字节),则sizeof操作结构如下
sizeof(s1) = 8;
sizeof(s2) = 12;
在32位机器上的一般为4字节对齐,上面结构中的分割线为内存对齐处(4字节对齐)。
关于内存对齐的好处:就是加快cpu的访问速度。cpu读取内存是按块读取(32位机为4字节)
加如没有内存对齐,那么当数据位于块读取分割处,就要读取2次,例如上面的s2若没有内存对齐,int i 占据
4 5 6 7,cpu读取1234 然后读取5678才能获取完整的int i
字节 1 2 3 4 | 5 6 7 8 | 9 10 11 12 | 13 14 15 16 |
------------------------------------------------------------------------------------------------------------------------------------------
vc中可以使用#pragma pack来设置内存对齐大小,如下设置内存对齐大小为1字节
#pragma pack(1)
struct s3
{
char c1;
short s;
char c2;
int i;
};
#pragma pack()
- 关于内存对齐的理解
- 关于内存对齐的理解
- 关于内存对齐的理解
- sizeof 关于内存对齐的理解
- 内存对齐问题的理解
- 内存对齐的方法理解
- 关于字节对齐的理解
- 关于字节对齐的理解
- 关于字节对齐的理解
- 关于内存对齐的探讨
- 关于内存对齐的总结
- 关于内存对齐的说明
- 关于内存对齐的总结
- 关于内存对齐的探索
- 关于内存对齐的问题
- 内存对齐与#pragma pack的理解
- C语言 内存对齐的理解
- 深入理解内存对齐
- FTP作业
- 根据一个ID,找出它最上级的ID的函数,适用于有parentid的树形表结构
- 使用vmware
- 循速渐进学用Session Bean3
- 用函数获得一个类型下所有的数据,并用逗号隔开,显示出来
- 关于内存对齐的理解
- sql中权限的应用
- session过期后含用iframe页面如何自动跳转到登陆页
- 风讯标签编辑器、标签样式编辑器简化版
- Delphi中的线程类 - TThread详解_LAVA WORLD [技术收集]
- Javascript访问html页面的控件
- ASP.Net中自定义Http处理及应用之HttpHandler篇
- 中国大学毕业生薪水排行揭晓:看看你学校排第几?
- 20071027听力原文