Struktur Größe
-
Hi!
Ich habe mal eine Frage. Ich habe eine Struktur DIDAT erstellt. Diese Struktur enthält 3 floats (also 12 Byte) und einen short (also 2 Bytes). Insgesamt also 14. Leider reserviert er immer 16 Bytes. Kann man das ändern? Reserviert er immer 4 Bytes dazu, egal welcher Datentyp?
typedef struct DIDAT { float fX, fY, fZ; short color; } TDIDat;
Oder ist etwas an der Struktur falsch? Die Abfrage sizeof(TDIDat) ergibt 16.
Blubbermann
-
Projekt -> Optionen -> Erweiterte Compiler-Optionen -> Datenausrichtung
-
Der Versucht immer Vielfache von 16 Byte zu reserviren.
Abhilfe: siehe Peter.
Mit 16 Byte Ausrichtung isser i.a. schneller. Sollte man lassen, wenn Tempo 'ne Rolle spielt.
-
Original erstellt von DerAltenburger:
Der Versucht immer Vielfache von 16 Byte zu reserviren.Komisch, dass zB. 5 floats und ein short nur 24 statt 32 Bytes ergeben, und dass in der Hilfe nur was von (default) 32 bit (4 Byte) steht ...
"Wenn man keine Ahnung hat, ruhig mal die Fresse halten."
-
Hast ja Rech, Jansen (4 x Word <> 16)
-
Original erstellt von DerAltenburger:
Hast ja Rech, Jansen (4 x Word <> 16)Jansens Satz (sehr geil
) steht immernoch: 32 Bit <> 4 x Word
-
Original erstellt von Peter:
Projekt -> Optionen -> Erweiterte Compiler-Optionen -> Datenausrichtungsowas doofes! habe echt fast nen halben tag davor gestanden und den fehler nicht gefunden. Ich dachte borland spinnt doch: 4 + 4 + 4 + 2 = 16 (für Borland)
Aber schön, man lernt immer dazu! Danke sehr!
-
Hi WebFritzi
Du solltest alles lesen!
Mir ging's um 16 Byte!
(nicht Bits )
-
Und wie kommst du auf 4 x Word?
-
QuadWord ist doch 4x Word (meine Compilereinstellung)
(Bei mir komischerweise seit der Installation so?)
PS: mit 4 x Word = 8 Byte haette das auch zu Jansens 24 Byte gepasst!
[ Dieser Beitrag wurde am 03.03.2003 um 15:47 Uhr von DerAltenburger editiert. ]
-
Die in den Optionen eingestellte Größe betrifft die Lage des Beginns der Struktur. Die einzelnen Elemente innerhalb der Struktur platziert er üblicherweise so, dass beim Lesen und Schreiben kein Bytesortieren notwendig ist.
[ Dieser Beitrag wurde am 03.03.2003 um 15:56 Uhr von Geo editiert. ]
-
Original erstellt von DerAltenburger:
QuadWord ist doch 4x Word (meine Compilereinstellung)Woher hast du bitte den Ausdruck QuadWord?
-
... und wiedermal guckt keine in die Hilfe:
-an Datenausrichtung an "n" Grenzen ausrichten, wobei: 1 = Byte, 2 = Wort (2 Bytes), 4 = Doppelwort (4 Bytes), 8 = Quad-Wort (8 Bytes), 16 = Paragraph (16 Bytes), Standardwert: -a4.
-
Das steht so in Erweiterte Compilereinstellungen (im BCB 4.0) bei Datenausrichtung!
(Byte, Word, DoubleWord und QuadWord!) Das ist Borland.