Utilisation de struct padding

Quelle est l’utilisation de la structure de remplissage en C?

Certaines architectures fonctionneront mieux si seuls des access alignés sont réalisés. Ainsi, le fait de placer des objects 32 bits sur des limites 32 bits et des objects 64 bits sur des limites 64 bits peut améliorer la vitesse de votre application.

Certaines architectures sont totalement incapables de faire des access non alignés, et sur ces architectures, le remplissage peut ne pas être un vrai désastre.

Voir cet article Wikipedia pour plus d’informations, mais essentiellement pour s’assurer que la structure occupe un nombre exact d’octets – ce qui, comme le dit Steve314, signifie que sizeof est un multiple exact de l’alignement.

L’alignement des données consiste à placer les données à un décalage de la mémoire égal à un multiple de la taille du mot, ce qui augmente les performances du système en raison de la manière dont la CPU gère la mémoire. Pour aligner les données, il peut être nécessaire d’insérer des octets sans signification entre la fin de la dernière structure de données et le début du suivant, qui correspond au remplissage de la structure de données.

Vous devez également savoir que, même si cela était très important pour un programmeur, cela le devient moins maintenant, car il est souvent géré par le compilateur pour vous. Il y aura des options de compilateur qui vous permettront de contrôler le processus.