Rembourrage de structure est l'ajout d'octets supplémentaires à une structure de données pour garantir qu'elle répond à certaines exigences d'alignement. Ceci est fait pour améliorer les performances de certaines opérations, telles que l'accès à la mémoire et les calculs à virgule flottante.
L'alignement d'une structure de données fait référence à la position de ses membres dans la mémoire. Certains processeurs nécessitent que les données soient alignées sur certaines limites, telles que les limites de 4 ou 8 octets. Si une structure de données n'est pas correctement alignée, le processeur devra peut-être effectuer un travail supplémentaire pour accéder à ses membres, ce qui peut ralentir les performances.
Le remplissage de structure peut être utilisé pour garantir qu'une structure de données répond aux exigences d'alignement du processeur cible. Par exemple, considérons la structure suivante :
```
point de structure {
entier x ;
int y;
} ;
```
Sur un processeur 32 bits, cette structure a une longueur de 8 octets, le membre « x » commençant à l'adresse mémoire 0 et le membre « y » commençant à l'adresse mémoire 4. Cependant, si le processeur nécessite un alignement sur 4 octets, le membre « y » commence à l'adresse mémoire 4. Le membre y` commencerait en fait à l’adresse mémoire 8, laissant un espace de 4 octets entre les deux membres. Cet espace est appelé remplissage. .
Le remplissage de structure peut également être utilisé pour améliorer les performances des calculs à virgule flottante. Certains processeurs utilisent des instructions spéciales pour les opérations à virgule flottante qui nécessitent que les opérandes soient alignés sur certaines limites. En ajoutant un remplissage à une structure de données, vous pouvez garantir que ses membres à virgule flottante sont correctement alignés, ce qui peut améliorer les performances des calculs à virgule flottante.
La quantité de remplissage requise pour une structure de données dépend du processeur cible et des exigences d'alignement de ses membres. Certains compilateurs proposent des options pour ajouter automatiquement un remplissage aux structures, ou vous pouvez ajouter un remplissage manuellement en insérant des membres vides dans la structure.
|