Ich benutze die IDE von Code :: Blocks mit dem GNU GCC Compiler.C/C++: Daten in einer Struktur packen oder auffüllen
struct test
{
char a;
char e;
char f;
char b;
char d;
};
sizeof(test)
kehrt 5
.
las ich diese Antwort: Why isn't sizeof for a struct equal to the sum of sizeof of each member?
Wie kommt es kein Polster nach dem letzten char
ist, so dass sizeof(test)
kehrt 6
oder 8
? Es gibt eine Tonne mehr Fragen, die ich fragen könnte, sobald ich short
und int
, etc. addiere, aber ich denke, dass diese Frage für jetzt gut ist. Würde das Auffüllen nicht dazu beitragen, dass der Prozessor leichter mit der Struktur arbeiten kann?
OK, sagen wir mal, meine Wortgröße ist 4 Bytes. Nehmen wir an, ich habe ein Array 'test stuff [1000]'. Mein Prozessor liest einzelne 'Test's wie' Char-Char-Char-Char-Char-Pad-Pad-Pad'. Muss das Array im Speicher nicht auch so formatiert werden? – newprogrammer
@newprogrammer Nein. Es wird 5000 Bytes ohne Elemente zwischen Elementen des Arrays von Mitgliedern der Struktur sein. – asaelr
@newprogrammer: Es gibt keine "Wörter" in Ihrer Struktur, so dass die Ausrichtung für ein "Wort" irrelevant ist. –