Hallo,
da ich in Pointer Arithmetik nicht ganz so fit bin mal hier nachgefragt.
Gegeben ist dieser Code:
Delphi-Quellcode:
type
PSkipjackTab = ^TSkipjackTab;
TSkipjackTab = array[0..255] of Byte;
procedure TCipher_Skipjack.SkipjackIncCheck(var ATab: PSkipjackTab; AMin: PSkipjackTab; AMax: PByte);
begin
Inc(ATab);
// {$IFDEF DELPHIORBCB}
// if ATab > AMax then
// {$ELSE !DELPHIORBCB}
{ TODO : Prüfen ob so korrekt, da ATab auf PByte gecastet wurde}
if PByte(ATab) > AMax then
// {$ENDIF !DELPHIORBCB}
ATab := AMin;
end;
Was tut der eigentlich?
Wenn ATab am Anfang auf Adresse 0 zeigen würde, zeigt das nach dem Aufruf durch das Inc
dann auf Adresse 257?
Und was tut der > Vergleich? Vergleicht der die Adresse von ATab mit AMax?
Grüße
TurboMagic