荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: keiths (LG), 信区: Program
标  题: Re: 再看
发信站: 荔园晨风BBS站 (Tue Nov 12 20:25:03 2002), 站内信件

【 在 wwwflycn (凡高.自杀) 的大作中提到: 】
: 个人认为这说法还值得商榷:
:  struct T{
:     char i;
:     double k;
:  };

:  但: struct T2{
:         char j;
:         T    b;
:       };
:   sizeof(T2) == 24
: 这种理解好像有点牵强.
``````````````````````````````````````````````
不同变量所占长度等于最长的成员的长度。

struct T2{
     char j;
     T    b;
};
中,j占8个字节,i[0..7]占8字节,i[8]占1个字节,(其余7个没有),k占
8个字节,(k是T2中最长的成员)。
所以 sizeof(T2)==8+8+8+8==24.


: 【 在 Liulang (铁了心的爱你) 的大作中提到: 】
: : 空间和编译器位数有关,32位的编译器一次申请空间最小单位为32位,也就是
: : 4个字节,16位编译器是2个字节.相同的类型可以拼凑在一起.
: : 如果你申请单个char,也是申请4个字节的空间.
: : 但是到了结构里面,空间是连续的,所以你申请的两个char后面浪费了2个字节
: : 的空间,你删除一个char或者添加两个char,结果都是8


--
keiths

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.48.238]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店