为什么会这样-关于记录类型的大小

pipimei 2000-02-19 09:45:00
有如下的代码:
...
Type my=record
a1:longint;
a2:byte;
end;
...
procedure SHowSize;
var
n:integer;
begin
n:=sizeof(my);
end;
在这里,我想n的值应该为5,但是结果却是8。
又,如果如下重定义my:
...
Type my=record
a1:byte;
a2:byte;
a3:byte;
end;
此时n的值为3。
为什么?,请帮忙。
...全文
81 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiangtao 2000-02-19
  • 打赏
  • 举报
回复
在Project编译选项 Align Record是纪录对齐,
default is set means:

纪录每个字段必须是4的倍数,
将选项关闭,就应该是5了

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧