| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4685 人关注过本帖, 1 人收藏
标题:关于sizeof(struct student)的问题
只看楼主 加入收藏
夜火
Rank: 1
等 级:新手上路
帖 子:149
专家分:0
注 册:2007-5-30
收藏
得分:0 

1*10 = 10,但是根据对齐原则,内存会分配12

什么的对齐原则


2007-09-19 17:04
yangzhifu
Rank: 1
等 级:新手上路
威 望:2
帖 子:433
专家分:0
注 册:2007-4-11
收藏
得分:0 
对齐原则是什么啊?第一次听到!

方寸之内,剖天下; 方坛之内,析自我;
2007-09-19 17:09
学c
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2007-9-17
收藏
得分:0 
我也在一直考虑这个问题
2007-09-19 17:10
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 
以下是引用学c在2007-9-19 17:00:41的发言:

楼上:为什么是56呢?要是那样的话应该是54啊!!

我也想不通什么是56,但结果就是这样.


wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-09-19 17:13
reedleaf
Rank: 2
等 级:新手上路
威 望:3
帖 子:62
专家分:0
注 册:2007-8-5
收藏
得分:0 
是内存地址对齐问题。

2007-09-19 22:00
我是菜鸟哦
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:921
专家分:209
注 册:2007-5-4
收藏
得分:0 
c中的对于struct的大小不能简单的理解为各个变量的大小之和,实际也不等于,但具体大小我也不知道如何得之,有望高人

偶是菜鸟鸟偶惧WHO?!!!!
2007-09-19 23:42
chllin
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-9-14
收藏
得分:0 

不是什么高人,只不过学的时候关注这个问题了。
对齐是为了提高cpu处理效率,原则挺复杂(大致):
1、分配地址的顺序为成员声明顺序;
2、成员变量存放的起始地址相对于结构的起始地址的偏移量必须为该变量的类型所占用的字节数的倍数;
3、结构结束大小必须为该结构中最大成员的倍数;(当该成员大小小于编译器默认的值时)
。。。。。还有一些想不起来了,给具体的题目吧。
比如:
struct stu
{
char name;
int dd;
double j;
};
sizeof(stu)=1+(3对齐)+4+8=16;







2007-09-20 08:46
学c
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2007-9-17
收藏
得分:0 

谢谢

2007-09-20 09:11
学技术的
Rank: 2
等 级:论坛游民
帖 子:91
专家分:45
注 册:2007-8-5
收藏
得分:0 
TO 5楼:
我觉得你说的那个边界对齐应该加在int型上,也就是4*10+4
2007-09-20 10:09
死了都要C
Rank: 4
来 自:四川成都
等 级:贵宾
威 望:13
帖 子:1582
专家分:116
注 册:2006-12-7
收藏
得分:0 

学学````学学```



女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2007-09-20 11:03
快速回复:关于sizeof(struct student)的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012509 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved