-
General
Compiler/Sprachen bieten oft Datentypen an, die bestimmte Größen zusichern. Es gibt beispielsweise Datentypen mit exakten Größen, die sich unter anderen Umständen garantiert nicht ändern und es gibt Datentypen mit einem zugesicherten Minimum, d.h. du kannst dich darauf verlassen, dass der Datentyp mindestens diese Größe hat, kann aber auch größer sein. Für den Compiler sind die letzteren Datentypen aus optimierungstechnischen Gründen von Vorteil, da er bei Datentypen, die kleiner als das Maschinenwort sind (ein Maschinenwort auf einem 16-bit System ist 16 Bit, auf einem 32-bit System 32 Bit und auf einem 64-bit System 64 Bit groß) auf einen Datentyp ausweichen kann, der exakt die Größe des Maschinenwortes hat. Da der Prozessor auf Daten mit der Größe des Maschinenwortes ausgelegt ist, müsste der Compiler jedes mal wenn mit kleineren Datentypen als das Maschinenwort gerechnet wird, diese Datentypen erst auf die Größe des Maschinenwortes konvertieren, an den Prozessor übergeben und nach der Berechnung wieder zurückkonvertieren. Bei Datentypen, die eine minimale Größe fordern, aber nach oben keine Grenze setzen, ist der Compiler nicht mehr gezwungen Konvertierungsoperationen (die in der Regel eine Folge von Schiebe- und Verknüpfungsoperationen sind) einzusetzen und kann die Daten direkt an den Prozessor übergeben.
Edit: Etwas umformuliert. :0
Geändert von Kyuu (18.08.2009 um 21:43 Uhr)
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln