Ich verwende die Code :: Blocks IDE mit dem GNU GCC Compiler.
%Vor% sizeof(test)
gibt 5
zurück.
Ich habe diese Antwort gelesen: Warum isn 't sizeof für eine Struktur gleich der Summe der sizeof jedes Mitglieds?
Wie kommt es, dass nach dem letzten char
keine Auffüllung erfolgt, so dass sizeof(test)
6
oder 8
zurückgibt? Es gibt eine Menge mehr Fragen, die ich stellen könnte, wenn ich short
und int
usw. hinzufüge. Aber ich denke, dass diese Frage im Moment gut ist. Wäre das Auffüllen nicht einfacher für den Prozessor, um mit der Struktur zu arbeiten?
Da Sie in den meisten Fällen zu einem bestimmten Zeitpunkt mit einem Member arbeiten oder die Adresse der Struktur übergeben, ist es dem Compiler nicht wichtig, die gesamte Struktur mehr auszurichten als die für seine Member benötigte Ausrichtung. Das heißt, wenn Sie diese Struktur zuweisen (oder sie der Funktion übergeben), muss der Prozessor sie von Element zu Element lesen. (und es wird ein wenig langsam sein).