如何使用FillChar在Delphi中填充3D整数数组(四个字节)?

时间:2014-01-27 16:53:50

标签: arrays delphi fillchar

我知道这有效:

type _AAAB = array of array of array of byte;

procedure fillArray(var arr: _AAAB; const v: byte); overload;
var
  i, j, k: integer;
begin
  for i := 0 to High(arr) do
  begin
    for j := 0 to High(arr[i]) do
    begin
      FillChar(arr[i][j][0], Length(arr[i][j]), v); // sizeof(byte)=1
    end;
  end;
end;

但是,如果数组是整数类型,4字节,上面的内容将无法按预期工作。我想在这里做的是加快以下步骤:

type _AAAI = array of array of array of integer;

procedure fillArray(var arr: _AAAI; const v: integer); overload;
var
  i, j, k: integer;
begin
  for i := 0 to High(arr) do
  begin
    for j := 0 to High(arr[i]) do
    begin
      for k := 0 to High(arr[i][j]) do
      begin
        arr[i][j][k] := v;
      end;
    end;
  end;
end;

通过更换内循环...任何建议?比FillChar更快的方法? FillChar用byte填充,所以这里不好。

1 个答案:

答案 0 :(得分:1)

您可以使用multibyte analogue to FillChar, such as FillWord or FillDWord。如果您的环境尚未包含这些功能,您可能必须自己编写这些功能。