Einzelnen Beitrag anzeigen

Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#1

Variablen Definition

  Alt 22. Jun 2011, 19:14
Delphi-Version: 2006
Ein Freund von mir meinte, es macht einen Unterschied, ob man Variablen nach dem Schema A oder Schema B definiert

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 (vlt weil dadurch - also 32 Bit - es schneller läuft?)

Stimmt das so? Falls ja, ist das "packed" genau dafür da, damit dies nicht geschieht?

also ist C = B, sofern A <> B
Delphi-Quellcode:
// C
type
  TMyRecordC = packed record
    _1: Byte;
    _2: Byte;
    _3: Byte;
    _4: Byte;
  end;
Edit:
Obwohl --> sizeof(TMyRecordA) = sizeof(TMyRecordB) = sizeof(TMyRecordC).
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG

Geändert von Aphton (22. Jun 2011 um 19:22 Uhr)
  Mit Zitat antworten Zitat