Einzelnen Beitrag anzeigen

Benutzerbild von Mystic
Mystic

Registriert seit: 18. Okt 2003
Ort: Flerzheim
420 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Warum ist ein Boolean so groß?

  Alt 25. Okt 2005, 23:55
Zitat von Oxmyx:
Einfach gesagt: 32 Bit große Typen werden von der CPU schneller verarbeitet.

Aus genau diesem Grund richtet Delphi die Strukturmitglieder standardmäßig auch auf 4 Byte aus:
Delphi-Quellcode:
  TTest = record
    a: Byte;
    b: Integer;
  end;
belegt standardmäßig nicht etwa 5 Byte, wie man vermuten würde, sondern 8 Byte, weil das einzelne Byte auf 32 Bit ausgerichtet wird.
Und packed record hebt die Ausrichtung wieder auf:
Delphi-Quellcode:
  TTest = packed record
    a: Byte;
    b: Integer;
  end;
Und sorgt so dafür dass dieser record auch nur 5 Byte groß ist.
Jan Steffens
Der Fachwortgenerator - 100% Schwachsinn --- Der UPnP Router Manager - Kommentare erwünscht!
  Mit Zitat antworten Zitat