社区
C语言
帖子详情
当定义一个结构的时候,什么叫对齐?
azhen
2005-11-12 08:27:18
定义这样一个结构
struct{
int a;
double b;
char c;
};
这里面什么叫对齐啊,表现在什么地方?求教了!
...全文
136
7
打赏
收藏
当定义一个结构的时候,什么叫对齐?
定义这样一个结构 struct{ int a; double b; char c; }; 这里面什么叫对齐啊,表现在什么地方?求教了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Caps77
2005-11-14
打赏
举报
回复
呵呵,不是那么容易就能理解的
http://www.blogcn.com/user65/caps77/blog/25507407.html
cdo
2005-11-14
打赏
举报
回复
int, double, char本来是4,8,1的,现在变成了8,8,8。 好处应该在内在分配和处理效率上吧。
hbvanguard
2005-11-14
打赏
举报
回复
int double char内存占用情况如下:
----------------------------------
| int(4)| double(8) |char(1)| 共13字节
----------------------------------
对齐后
----------------------------------------------
| int(4+4) | double(8) |char(1+7) |共24字节
----------------------------------------------
goodluckyxl
2005-11-14
打赏
举报
回复
http://community.csdn.net/Expert/topic/4324/4324625.xml?temp=.4974787
liuq
2005-11-14
打赏
举报
回复
int a;
char b;
double c;
是编译器来决定如何处理吗?
Death_YEH
2005-11-12
打赏
举报
回复
是变成4,8,2吧?
如果改成
int a;
char b;
double c;
就更明白了
b只占有一个字节,如果a的开始地址是偶数,那么,c的开始位置一定是奇数了,这样会影响效率,如果变量从偶数地址开始效率会高很多,所以b后面那个字节就空出来了,本来占13个字节的变成了14个字节。这个叫偶对齐吧
ma100
2005-11-12
打赏
举报
回复
int a;
double b;
char c;
本来占字节 4,8,1
使用对齐功能后就变成了8,8,8,优点:运行快
内存
对齐
是什么?为什么要
对齐
?怎么
对齐
?
所谓内存
对齐
,就是将数据存放到一个是字的整数倍的地址指向的内存之中。处理器在执行指令去操作内存中的数据,这些数据通过地址来获取。不论什么数据都有一定的大小,当一个数据所在的地址和它的大小
对齐
的时候,就说这个数据自然
对齐
了(naturally aligned),否则就是没
对齐
。
什么叫4K
对齐
、如何进行硬盘4K
对齐
?
什么是叫做4K
对齐
?其实“4K
对齐
”相关联的是一个叫做“高级格式化”的分区技术。“高级格式化”是国际硬盘设备与材料协会为新型数据
结构
格式所采用的名称。这是主要鉴于目前的硬盘容量不断扩展,使得之前定义的每个扇区512字节不再是那么的合理,于是将每个扇区512字节改为每个扇区4096 个字节,也就是现在常说的“4K扇区”。传统硬盘的每个扇区固定是512字节,新标准的“4K扇区”的硬盘,硬盘厂商为了保证
什么是C语言
结构
体字节
对齐
,为什么要
对齐
?
一、概念
对齐
跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然
对齐
。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就是自然
对齐
的。 二、为什么要字节
对齐
需要字节
对齐
的根本原因在于CPU访问数据的效率问题。假设上面整型变量的地址不是自然
对齐
,比如为0x00000002,则CPU如果取
为什么要字节
对齐
?
转载:https://blog.csdn.net/zkf11387/article/details/7662450 文章最后本人做了一幅图,一看就明白了,这个问题网上讲的不少,但是都没有把问题说透。 一、概念
对齐
跟数据在内存中的位置有关。如果一个变量的内存地址正好位于它长度的整数倍,他就被称做自然
对齐
。比如在32位cpu下,假设一个整型变量的地址为0x00000004,那它就...
什么是字节
对齐
,为什么要
对齐
一.什么是字节
对齐
,为什么要
对齐
? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任 何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的 排放,这就是
对齐
。
对齐
的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型 的
C语言
69,380
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章