| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 534 人关注过本帖
标题:关于struct的size
只看楼主 加入收藏
wbw626
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2013-6-16
结帖率:87.5%
收藏
 问题点数:0 回复次数:9 
关于struct的size
struct s1 {
char c;
int i;
char d;
};
printf("The sizeof s1 is: %d\n", sizeof(struct s1));这个的输出是12
struct s2 {
char c;
char d;
int i;
};printf("The sizeof s2 is: %d\n", sizeof(struct s2));这个的输出是8
int的size是4,char的size是1,这两个struct应该是6不是么,为什么会得到12和8,很不解,求大神指教
2013-06-22 06:10
YJ_Hao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:215
专家分:609
注 册:2013-3-22
收藏
得分:0 
这是结构体的内存对齐!
2013-06-22 06:16
wbw626
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2013-6-16
收藏
得分:0 
回复 2楼 YJ_Hao
什么意思?
2013-06-22 06:47
蔡梓锋
Rank: 4
等 级:业余侠客
帖 子:106
专家分:202
注 册:2013-4-20
收藏
得分:0 
我也不懂,大神来解释一下啊!

加油加油!
2013-06-22 09:17
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
2楼已经指出来了,会学习的应该去度娘搜索了

总有那身价贱的人给作业贴回复完整的代码
2013-06-22 09:27
pycansi
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:418
专家分:1060
注 册:2012-7-26
收藏
得分:0 
刚试了下,应该是按最大类型进行扩展的,比如你的例子,最大类型为4,那struct内内存的排列就要“4444……”这样,第一个例子第一,三个为char,要补为4,第2个例子第一,二个为char,补2个字节就行了


莫问前尘有愧,但求今生无悔
2013-06-22 09:38
pycansi
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:418
专家分:1060
注 册:2012-7-26
收藏
得分:0 
embed_xuel,还不知道怎么称呼额...大叔?大哥?童鞋?...虽然是严厉了点,但他所提倡的独立思考,重能力等,也是我们整个坛子所提倡的


莫问前尘有愧,但求今生无悔
2013-06-22 09:54
wbw626
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2013-6-16
收藏
得分:0 
回复 7楼 pycansi
嗯,我自己百度去看了
2013-06-22 11:22
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:0 
在结构中,编译器为结构的每个成员按其自然对界(alignment)条件分配空间;各个成员按照它们被声明的顺序在内存中顺序存储,第一个成员的地址和整个结构的地址相同。在缺省情况下,C编译器为每一个变量或是数据单元按其自然对界条件分配空间。

思考赐予新生,时间在于定义
2013-06-22 11:41
YJ_Hao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:215
专家分:609
注 册:2013-3-22
收藏
得分:0 
现在的学习,不是你能记住多少,而是你利用所能有的资源查到多少并能够灵活运用!
2013-06-22 11:47
快速回复:关于struct的size
数据加载中...
 
   



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

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