AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Was bringt ein "packed" bei "record packed"?
Thema durchsuchen
Ansicht
Themen-Optionen

Was bringt ein "packed" bei "record packed"?

Ein Thema von Helmi · begonnen am 2. Jan 2009 · letzter Beitrag vom 2. Jan 2009
 
Benutzerbild von Luckie
Luckie

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

Re: Was bringt ein "packed" bei "record packe

  Alt 2. Jan 2009, 09:55
Normalerweise sind die Daten in einem Record an 4-Byte Grenzen ausgerichtet. Beispiel:
Delphi-Quellcode:
TDemo = record
  b: Byte;
  c: Byte;
end;
Ausrichtung im Speicher:
Code:
0  1  2  3  |  4  5  6  7
b b       |  c c
Deklarierst du den Record als packed sieht der Record im Speicher wie folgt aus:
Code:
0  1  2  3
b b c c
Die Ausrichtung an 4-Byte Grenzen macht die Verarbeitung einfacher, weil eine 32-.Bitz CPU sowieso immer 4-Byte auf einmal aus dem Speicher holt, egal, um was für einen datentyp es sich handelt. Sind die daten jetzt an 4-Byte Grenzen ausgerichtet, muss die CPU die Daten nicht noch "nachbearbeiten". Man hat also einen Performance Vorteil. Allerdings aus Sicht des Programmierers ist es praktischer einen Record als packed zu deklarieren, da man keine Probleme bekommt, wenn sich in Zukunft die Ausrichtung ändert; auf 64-Bit CPUs zum Beispiel.

Dann muss man noch manchmal berücksichtigen, wie API-Funktionen Strukturen übergeben haben wollen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz