1 (изменено: 0CodErr, 01.07.2020 в 01:58)

Тема: FillChar и Move

Варианты на Pascal

procedure _FillChar(var Dst; Count: LongInt; Value: AnsiChar);
var
  Idx: LongInt;
begin
  for Idx := 0 to Count - 1 do
    PAnsiChar(@Dst)[Idx] := Value;
end;
procedure Move(const Src; var Dst; Count: LongInt);
var
  Idx: LongInt;
begin
  if @Src <> @Dst then
    if (LongWord(@Src) > LongWord(@Dst)) 
      or (LongWord(@Dst) > (LongWord(@Src) + Count)) then
      for Idx := 0 to Count - 1 do
        PAnsiChar(@Dst)[Idx] := PAnsiChar(@Src)[Idx]
    else
      for Idx := Count - 1 downto 0 do
        PAnsiChar(@Dst)[Idx] := PAnsiChar(@Src)[Idx];
end;