Es hängt alles vom Typ des "i" ab. In Delphi deklariert man normalerweise Schleifenvariablen als "i: Integer", aber es könnte genauso gut "i: PChar" sein, was sich auf PAnsiChar in allem unter Delphi 2009 und FPC auflöst (hier bin ich mir nicht sicher), und auf PWideChar in Delphi 2009 und Delphi.NET (auch hier bin ich mir nicht sicher).
Da Delphi 2009 Pointermathematik kann, kann Inc(i) auch auf typerierten Pointern gemacht werden (wenn sie mit POINTER_MATH definiert sind).
Zum Beispiel:
type
PSomeRecord = ^RSomeRecord;
RSomeRecord = record
Value1: Integer;
Value2: Double;
end;
var
i: PSomeRecord;
procedure Test;
begin
Inc(i); // Diese Zeile erhöht i um SizeOf(RSomeRecord) Bytes, dank POINTER_MATH !
end;
Wie die anderen Antworten bereits gesagt haben: Es ist relativ einfach zu sehen, was der Compiler aus Ihrem Code gemacht hat, indem Sie öffnen:
Ansichten > Debugfenster > CPU-Fenster > Disassembly
Beachten Sie, dass Compileroptionen wie OPTIMIZATION, OVERFLOW_CHECKS und RANGE_CHECKS das Endergebnis beeinflussen können, daher sollten Sie darauf achten, dass die Einstellungen Ihren Vorlieben entsprechen.
Ein Tipp dazu: In jeder Einheit $INCLUDE eine Datei, die die Compileroptionen steuert, auf diese Weise verlieren Sie die Einstellungen nicht, wenn Ihre .bdsproj oder .dproj irgendwie beschädigt ist. (Schauen Sie sich den Quellcode des JCL für ein gutes Beispiel dafür an)