No te calientes la cabeza, la función Sizeof te devuelve el tamaño en bytes de cualquier variable, o tipo. Por ejemplo:
Código Delphi
[-]
ShowMessage(IntToStr(Sizeof(Real)));
Y sino también puedes mirar la ayuda:
Código:
Type Range digits Size in bytes
Real48 2.9 x 10^-39 .. 1.7 x 10^38 11-12 6
Single 1.5 x 10^-45 .. 3.4 x 10^38 7-8 4
Double 5.0 x 10^-324 .. 1.7 x 10^308 15-16 8
Extended 3.6 x 10^-4951 .. 1.1 x 10^4932 19-20 10
Es mejor que te acostumbres a usar Sizeof, porque a veces pasan cosas curiosas como esta:
Código Delphi
[-]
var
Ejemplo: record
i: Integer;
b: byte;
end;
begin
ShowMessage(IntToStr(Sizeof(Ejemplo)));
end;
Según la tabla anterior el tamaño del record debería de ser de 5 bytes, pero sin embargo como veras en el mensaje es de 8. Esto es debido a la "optimización" que realiza el compilador. Y sin embargo:
Código Delphi
[-]
var
Ejemplo: packed record
i: Integer;
b: byte;
end;
begin
ShowMessage(IntToStr(Sizeof(Ejemplo)));
end;
Ahora el record si que mide 5 bytes, curioso ¿verdad?