y一个很怪异的问题 ,大家来看看 ( 积分: 3 )

  • 主题发起人 主题发起人 liujiandong
  • 开始时间 开始时间
L

liujiandong

Unregistered / Unconfirmed
GUEST, unregistred user!
我定义了一个结构如下:
a=record
b:longword;
c:word;
d:longword;
e:word;
end;
我用sizeof(a) 等到的长度是16 ,为什么,很怪异?????
 
我定义了一个结构如下:
a=record
b:longword;
c:word;
d:longword;
e:word;
end;
我用sizeof(a) 等到的长度是16 ,为什么,很怪异?????
 
字节对齐的问题,编译器默认的是4个字节对齐,那么两个word都按照4个字节对齐,所以共4*4=16个字节。
a=packed record
....
end;
这样就是12个字节了。
或者project->options->compiler->Record field alignment修改一下。
 
后退
顶部