array [0..9] of char 与 packed array [0..9] of char 的区别 ( 积分: 50 )

  • 主题发起人 主题发起人 sjjwan
  • 开始时间 开始时间
S

sjjwan

Unregistered / Unconfirmed
GUEST, unregistred user!
在delphi中,array [0..9] of char 与 packed array [0..9] of char 占用的内存大小都一样的. array [0..9] of char 是不是已经是压缩字符了?
在Tubro pascal中 array [0..9] of char 不是压缩字符.
是不是现在在delphi中array [0..9] of char 与 packed array [0..9] of char写法都一样的啊,没什么区别?
 
默认编译条件下,packed会4字节对齐,如果record只有一个元素,packed没啥作用的.
比如
ta = record
a : Byte;
b : Integer;
end;

tb = packed record
a : Byte;
b : Integer;
end;


ShowMessage(IntToStr(SizeOf(ta)))
//8
ShowMessage(IntToStr(SizeOf(tb)))
//5
 
这个我知道,我问的是关于数组
 
数组还真没遇到过这样的声明,不太了解有无意义。不过packed的意思是紧缩排列,即胡略编译器的对齐设置,如果从这个方面去理解的话,由于array的所有元素都拥有相同的长度,应该在这里作用不大吧?可能加与不加都一样。不过我那不准是不是如此,上面说的只能做参考,等待高手解释。
 
packed更节省内存
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
811
import
I
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
D
回复
0
查看
840
DelphiTeacher的专栏
D
后退
顶部