VC++6.0从入门到精通 39页结构体字节对齐问题
发表在C语言图书答疑 2012-06-26
是否精华
版块置顶:
书中说“由于CHAR类型占1个字节,memTwo将占8的位置,因为当前位置8与4是整除的“。应该是8与1是整除的吧?是书中的错误吗,怎么我理解不了?
分享到:
精彩评论 2
C语言
学分:0 LV1
TA的每日心情
无聊
2021-11-12 22:00:04
2012-06-28
沙发
应该是8与8是整除的。
struct
{double a;
 int b;
}

struct
{double a;
 char c;
}
struct
{double a;
 int b;
 char c;
}

他们都占16字节。
struct
{float a;
 char c;
}
占8字节
followme001
学分:0 LV1
TA的每日心情
开心
2021-01-24 10:56:53
2012-06-28
板凳

struct ByteAlign
{
  double memOne;
  char   memTwo;
  int    memThree;
};
书中说“编译器在为结构体变量分配空间时,保证下一个成员的偏移量应为该成员数据类型长度的整数倍。”
以为分配memTwo为例,“下一个成员的偏移量”是8,然后“该成员数据类型长度”是指memOne吗?那就是8字节了。
但是,再给memThree分配,“下一个成员的偏移量”是9,然后“该成员数据类型长度”是指memTwo,得出是1字节,但是9与1是整除的阿?那不就自相矛盾了?
首页上一页 1 下一页尾页 2 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照