Lasst uns sagen, dass ich die folgende Struktur definiert werden:Speicher Ausrichtung und Größe der Struktur
struct MyData {
int a;
char b;
int c;
byte d;
byte e;
}
Ich erinnere mich vage, zu lesen, dass die Größe dieser Struktur nicht nur auf den Datentyp abhängt, sondern auch Speicherausrichtung. Auf einer 32-Bit-CPU wäre die MyData-Struktur 4 Byte + 1 Byte + 4 Byte + 1 Byte + 1 Byte = 11 Byte. Hier ist meine Frage, ist Speicher Alignement erhöht die Größe der Struktur: 4 Bytes + 1 Byte (+3 Bytes Padding) + 4 Bytes + 1 Byte (+3 Bytes Padding) + 1 Byte (+3 Bytes Padding) = 20 Bytes.
Ist das falsch? Fehle ich etwas? Ist das etwas sprachspezifisch? Kann ich die Struktur packen? Wenn ja, was wären die Vor- und Nachteile?
Danke!
Ein wenig googeln und testen mit sizeof() kann Ihnen eine Menge Informationen geben. Sie werden hier einige nützliche Dinge finden: http://c-faq.com/ – pzanoni