Thema: Delphi Integer vs. byte

Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.107 Beiträge
 
Delphi 11 Alexandria
 
#3
  Alt 17. Okt 2002, 01:28
Moin Sebastian,

solltest Du Records benötigen, dann auf keinen Fall als packed record Deklarieren, so es vermeidbar ist, denn ansonsten kann es Dir passieren, je nach Aufbau des Records, dass die Variablen nicht auf 32 Bit Grenzen ausgerichtet sind, und somit beim Zugriff mit einem sogenannten "Alignment Error" "bestraft" werden (das läuft CPU intern ab und hat nichts mit Fehlermeldungen zu tun).
Dadurch würde die Geschwindigkeit, unter Umständen spürbar, beeinträchtigt werden.

Bei den Vorgaben die Du hast, erscheint mir Cardinal am sinnvollsten zu sein.
Dann wärest Du sogar bei einem Wechsel des Compilers auf eine 64 Bit Version auf der sicheren Seite, denn dann würde Cardinal als 64 Bit ohne Vorzeichen compiliert werden, was auf einem 64 Bit Prozessor von das Alignmentproblem automatisch umgeht. (Ich weiss, Zukunftsmusik, aber schon hörbar )

Generic Integer heisst ja nichts anderes, als dass es die Typen sind, deren Grösse (in Bit) immer der Datenbreite der CPU entsprechen, für die der Compiler ausgelegt ist.

(integer = mit Vorzeichen, cardinal = ohne Vorzeichen)
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat