• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
demps_c
博客园    首页    新随笔    联系   管理    订阅  订阅
对齐

结构体内的变量对齐原则

struct{

int a;

short b;

char c;

}s1;

每个int类型只会从内存地址除以4余数为0的地方开始,只会从这个地方开始

而short只会从内存地址除以2余数为0的地方开始 只会从这个地方开始

c则从任何地方呢都会开始 只会从这个地方开始

(按照4对齐)

 

 

struct a {
char c;
}

 

struct b{
char c;
struct a a;
short s;
struct a a;
}

 

第一个是4

第二个是6

此时应该是按照2对齐

 

 

 

struct c{
12 char a[3];
13 };
14 struct d{
15 char c[3];(大小为6)
16 struct c a[2];
17 short s;
18 };

 

只能解释为1字节对齐吧

结果为12

posted on 2013-09-09 14:40  demps_c  阅读(154)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3