Ich habe einen C # -Hintergrund. Ich bin ein Neuling in einer einfachen Sprache wie C.
In C # wird struct
der 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 struct
standardmäß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 pack
jedoch mit einer genaueren Kontrolle über die Semantik.