Todo depende del tipo de "i". En Delphi, uno normalmente declara variables de bucle como "i: Integer", pero bien podría ser "i: PChar", que se resuelve en PAnsiChar en todo lo que está debajo de Delphi 2009 y FPC (supongo que aquí), y en PWideChar en Delphi 2009 y Delphi.NET (también adivinando).
Dado que Delphi 2009 puede hacer puntero-matemáticas, Inc (i) también se puede hacer en punteros tipeados (si están definidos con POINTER_MATH activado).
Por ejemplo:
type
PSomeRecord = ^RSomeRecord;
RSomeRecord = record
Value1: Integer;
Value2: Double;
end;
var
i: PSomeRecord;
procedure Test;
begin
Inc(i); // This line increases i with SizeOf(RSomeRecord) bytes, thanks to POINTER_MATH !
end;
Como los otros anwsers ya se ha dicho: Es relativly fácil ver lo que el compilador hace de su código mediante la apertura:
Vistas> depuración de Windows> Windows CPU > Desmontaje
Tenga en cuenta, que las opciones del compilador como la optimización, OVERFLOW_CHECKS y RANGE_CHECKS podría influir en el resultado final, por lo que Shoul Tenga cuidado de tener la configuración de acuerdo a su preferencia.
Un consejo al respecto: en cada unidad, $ INCLUYE un archivo que dirige las opciones del compilador, de esta manera, no perderá configuraciones cuando su .bdsproj o .dproj se dañe de alguna manera. (Consulte el código fuente del JCL para ver un buen ejemplo al respecto)
"5.1222741794670901427682121946224e-8" ?? ¿Qué pasa con "5.12e-8"? :-) No puedo pensar en ninguna aplicación práctica que requiera 32 dígitos significativos, ni ninguna medición con la mitad de ellos correctos. "Un matemático quiere pi a 1 billón de dígitos, a un ingeniero pi igual a 3.14" – stevenvh
Jeje, bueno realicé una prueba y ese fue el resultado, así que solo lo corté y pegué, de ahí la gran cantidad de dígitos :) –