大家好,请问一下procedure       Move( const Source; var Dest; count : Integer ); 
{$IFDEF PUREPASCAL} 
var 
  S, D: PChar; 
  I: Integer; 
begin 
  S := PChar(@Source);//取内存地址 
  D := PChar(@Dest);//取内存地址 
  if S = D then Exit; 
  if Cardinal(D) > Cardinal(S) then 
    for I := count-1 downto 0 do 
      D[I] := S[I] 
  else 
    for I := 0 to count-1 do 
      D[I] := S[I]; 
end; 
上面的是move的原函数,我不明白的是为啥要Cardial(D)>Cardinal(s),然后两种(if   else),不就是把source给destination吗,干吗非要一会从count-1 到0 ,一会从0到count,delphi  库函数   编程