Los sistemas exigen que ciertas primitivas se alineen con ciertos puntos dentro de la memoria (entradas a bytes que son múltiplos de 4, cortos a bytes que son múltiplos de 2, etc.). Por supuesto, estos se pueden optimizar para perder el menor espacio en el relleno.¿Por qué GCC no optimiza las estructuras?
Mi pregunta es por qué GCC no hace esto automáticamente? ¿La heurística más obvia (variables de orden desde el tamaño más grande hasta el más pequeño) carece de alguna manera? ¿Algún código depende del orden físico de sus estructuras (es una buena idea)?
Solo estoy preguntando porque GCC está súper optimizado de muchas maneras, pero no en esta, y estoy pensando que debe haber una explicación relativamente buena (a la que soy ajeno).
Sí, pero ¿por qué se definió de esta manera? – nes1983
@ nes1983 El programador puede hacer suposiciones en cuanto al orden de los datos en la estructura y puede estar usando el enmascaramiento para obtener cada parte. Si la estructura se reordena más que el enmascarado, sé incorrecto. – Evo510
@ Evo510: Estoy confundido. Para utilizar el enmascaramiento, también debe conocer el relleno, que no está garantizado por el idioma. Entonces, no puedes usar máscaras. ¿Me estoy perdiendo de algo? – nes1983