Von Bedeutung sind diese Angaben gegebenenfalls für Ein- und Ausgabeoperationen, für die ein Pufferbereich bereitgestellt werden soll. Zum Beispiel für die Arbeit mit Records kann es angenehm sein, die erforderliche Größe des Pufferbereichs dynamisch zur Laufzeit zu ermitteln.
Standard Pascal, Extended Pascal
Es sind keine Mittel zur Ermittlung des Speicherbedarfs von Datentypen vorgesehen.
Viele Systeme stellen aber - mit kleinen Unterschieden - die Funktion SizeOf bereit.
Pascal++
Verwendet werden kann die Funktion SizeOf:
laenge := SizeOf(typ); { VAR laenge : INTEGER; }
typ ist der Bezeichner eines beliebigen Datentyps.
Turbo Pascal, XL Pascal, Gnu Pascal
Verwendet werden kann die Funktion SizeOf:
laenge := SizeOf(typ); { VAR laenge : INTEGER; }
laenge := SizeOf(variable);
typ ist der Bezeichner eines beliebigen Datentyps.
Beispiel:
PROGRAM size_of(OUTPUT);
TYPE rec = RECORD
x, y, z : REAL;
END;
prec = ^rec;
typ = ( int, byt );
union = RECORD
CASE typ OF
int : ( i : INTEGER );
byt : ( b : BYTE );
END;
BEGIN
Writeln('REAL ', SizeOf(REAL));
Writeln('rec ', SizeOf(rec));
Writeln('prec ', SizeOf(prec));
Writeln('typ ', SizeOf(typ));
Writeln('union ', SizeOf(union));
END.
Die Testergebnisse weisen auf die Bedeutung der Funktion hin:
Pascal++ XL Pascal Gnu Pascal Turbo Pascal
REAL 8 8 8 6
rec 24 24 24 18
prec 4 8 4 4
typ 1 1 4 1
union 4 4 4 2
Bemerkung: In XL Pascal und in Gnu Pascal existiert kein vordefinierter
Datentyp BYTE.