Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

AW: Variablen Definition

  Alt 22. Jun 2011, 20:26
Delphi-Quellcode:
// A
type
  TMyRecordA = record
    _1: Byte;
    _2: Byte;
    _3: Byte;
    _4: Byte;
  end;

// B
type
  TMyRecordB = record
    _1, _2, _3, _4: Byte;
  end;
Er meinte nämlich, dass bei Variante B für die Vier 1 Byte Elemente nur 1 DWord (also wirklich 4 Bytes) reserviert werden und bei A eben für jedes Feld 4 Bytes
Unsinn. Beide Records sind gleich groß. Wird das Schlüsselwort packed nicht verwendet werden die Felder des Records ausgerichtet. Wie sie ausgerichtet werden, kann man mit der Compilerdirektive Align beeinflussen. Wird das Schlüsselwort packed verwendet, liegen sie ohne "Zwischenraum" hintereinander im Speicher. Erstes ermöglicht es der CPU schneller auf die Felder des Rorcords zuzugreifen, weil unter 32 Bit immer 32 Bit aus dem Arbeitsspeicher geholt werden.

Version A und Version B sind identisch, nur unterschiedliche Schreibweisen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat