Difference between revisions of "Packed/de"
From Free Pascal wiki
Jump to navigationJump to searchm (typo/spell fix) |
|||
Line 3: | Line 3: | ||
Zurück zu den [[Reserved words/de|reservierten Wörtern]].<br> | Zurück zu den [[Reserved words/de|reservierten Wörtern]].<br> | ||
<br> | <br> | ||
− | Das reservierte Wort <b>packed</b> weist den Compiler an, für das Objekt sowenig Speicher | + | Das reservierte Wort <b>packed</b> weist den Compiler an, für das Objekt sowenig Speicher wie möglich zu verwenden.<br> |
Das wird dadurch erreicht, das zwischen einzelnen Elementen kein Zwischenraum gelassen wird.<br> | Das wird dadurch erreicht, das zwischen einzelnen Elementen kein Zwischenraum gelassen wird.<br> | ||
D. h. die einzelnen Elemente werden auch an ungeraden Speicheradressen ausgerichtet.<br> | D. h. die einzelnen Elemente werden auch an ungeraden Speicheradressen ausgerichtet.<br> | ||
Line 17: | Line 17: | ||
<br> | <br> | ||
− | Es ist auch | + | Es ist auch bitweises Packen möglich, dies geschieht mit [[bitpacked]].<br> |
− | + | Das Array '''a0''' ist ein Byte groß.<br> | |
− | + | Das normal deklarierte '''a1''' aber 8 Byte. | |
<syntaxhighlight> | <syntaxhighlight> | ||
var | var | ||
Line 25: | Line 25: | ||
a1: array[0..7] of Boolean; // 8 Byte | a1: array[0..7] of Boolean; // 8 Byte | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
− | |||
− | |||
− | |||
− |
Revision as of 22:43, 2 August 2018
│
Deutsch (de) │
English (en) │
русский (ru) │
Zurück zu den reservierten Wörtern.
Das reservierte Wort packed weist den Compiler an, für das Objekt sowenig Speicher wie möglich zu verwenden.
Das wird dadurch erreicht, das zwischen einzelnen Elementen kein Zwischenraum gelassen wird.
D. h. die einzelnen Elemente werden auch an ungeraden Speicheradressen ausgerichtet.
Beispiel:
type TPArray = Packed array[...] of ...;
type TPClass = Packed class ... end;
type TPObject = Packed object ... end;
type TPRecord = Packed record ... end;
Es ist auch bitweises Packen möglich, dies geschieht mit bitpacked.
Das Array a0 ist ein Byte groß.
Das normal deklarierte a1 aber 8 Byte.
var
a0: bitpacked array[0..7] of Boolean; // 1 Byte
a1: array[0..7] of Boolean; // 8 Byte