gpt4 book ai didi

delphi - 如何快速清除简单类型的记录?

转载 作者:行者123 更新时间:2023-12-03 14:33:33 26 4
gpt4 key购买 nike

我有一个如下定义的结构:

const
MaxSignalRecords=255;
type
TSignalRecord=record
signal1 : integer;
signal2 : integer;
signal3 : integer;
signal4 : integer;
signal5 : integer;
signal6 : integer;
bsignal1 : Boolean;
bsignal2 : Boolean;
bsignal3 : Boolean;
bsignal4 : Boolean;
bsignal5 : Boolean;
bsignal6 : Boolean;
end;

TListSignals = Array[0..MaxSignalRecords-1] of TSignalRecord;

此结构用于在如下算法中进行数千次计算:

for i:=1 to 900000 do
begin
CleartheList(MyList);
DotheMath(MyList);
DotheChart(MyList);
end;

我正在寻找一种快速方法将 TListSignals 的值初始化为 0 和 false

现在我正在使用这个:

procedure ClearListSignals(var ListSignals:TListSignals);
var
i :Integer;
begin
for i := 0 to MaxSignalRecords - 1 do
with ListSignals[i] do
begin
signal1 :=0;
signal2 :=0;
signal3 :=0;
signal4 :=0;
signal5 :=0;
signal6 :=0;
bsignal1 :=false;
bsignal2 :=false;
bsignal3 :=false;
bsignal4 :=false;
bsignal5 :=false;
bsignal6 :=false;
end;
end;

如何提高 ClearListSignals 过程的性能?

最佳答案

您可以使用位于Windows单元中的ZeroMemory程序。

var
MyList : TListSignals;
begin
ZeroMemory(@Mylist,SizeOf(MyList));
end;

关于delphi - 如何快速清除简单类型的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5509394/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com