Tengo experiencia en C #. Soy muy novato en un lenguaje de bajo nivel como C.
En C #, structel compilador distribuye la memoria de forma predeterminada. El compilador puede reordenar los campos de datos o rellenar bits adicionales entre campos de forma implícita. Entonces, tuve que especificar algún atributo especial para anular este comportamiento para un diseño exacto.
AFAIK, C no reordena ni alinea el diseño de la memoria de a structde forma predeterminada. Sin embargo, escuché que hay una pequeña excepción que es muy difícil de encontrar.
¿Cuál es el comportamiento del diseño de memoria de C? ¿Qué se debe reordenar / alinear y no?
#pragma packpero con un control más detallado sobre la semántica.