Ich habe einen C # -Hintergrund. Ich bin ein Neuling in einer einfachen Sprache wie C.
In C # wird structder Speicher standardmäßig vom Compiler angelegt. Der Compiler kann Datenfelder neu anordnen oder zusätzliche Bits implizit zwischen Feldern auffüllen. Daher musste ich ein spezielles Attribut angeben, um dieses Verhalten für ein genaues Layout zu überschreiben.
AFAIK, C ordnet das Speicherlayout von a structstandardmäßig nicht neu an oder richtet es nicht aus . Ich habe jedoch gehört, dass es eine kleine Ausnahme gibt, die sehr schwer zu finden ist.
Wie verhält sich C im Speicherlayout? Was sollte nachbestellt / ausgerichtet werden und nicht?
#pragma packjedoch mit einer genaueren Kontrolle über die Semantik.