如何在压缩布尔数组上使用FIllChar?

时间:2015-10-26 16:06:15

标签: delphi

在Delphi中,如果我将一个布尔数组声明为压缩数组,如:

var
   arr: packed array of boolean;
begin
  SetLength(arr, 100);
  FillChar(arr[0], Length(arr) * SizeOf(arr[0]), True);
end;

这是对的吗?

1 个答案:

答案 0 :(得分:2)

在Delphi中packed在数组上使用时没有任何意义。所有数组元素都是可寻址的。也就是说,每个数组元素的大小至少为一个字节。在Delphi中,不可能在Pascal的其他一些变体中将8个元素打包到单个字节中。

这意味着您对FillChar的调用将按照您的意图行事。