Strukturpolstring er tilføjelsen af ekstra bytes til en datastruktur for at sikre, at den opfylder visse tilpasningskrav. Dette gøres for at forbedre ydeevnen af visse operationer, såsom hukommelsesadgang og flydende kommaberegninger.
Tilpasningen af en datastruktur refererer til positionen af dens medlemmer i hukommelsen. Nogle processorer kræver, at data justeres på bestemte grænser, såsom 4-byte eller 8-byte grænser. Hvis en datastruktur ikke er korrekt justeret, skal processoren muligvis udføre ekstra arbejde for at få adgang til sine medlemmer, hvilket kan bremse ydeevnen.
Strukturpolstring kan bruges til at sikre, at en datastruktur opfylder målprocessorens tilpasningskrav. Overvej for eksempel følgende struktur:
```
struct punkt {
int x;
int y;
};
```
På en 32-bit processor er denne struktur 8 byte lang, hvor `x`-elementet starter ved hukommelsesadresse 0 og `y`-elementet starter ved hukommelsesadresse 4. Men hvis processoren kræver 4-byte-justering, vil `` y`-medlemmet ville faktisk starte ved hukommelsesadresse 8, hvilket efterlader et 4-byte-mellemrum mellem de to medlemmer. Dette mellemrum er kendt som polstring .
Strukturpolstring kan også bruges til at forbedre ydeevnen af flydende kommaberegninger. Nogle processorer bruger specielle instruktioner til flydende kommaoperationer, der kræver, at operanderne er justeret på bestemte grænser. Ved at tilføje polstring til en datastruktur kan du sikre, at dens flydende kommamedlemmer er korrekt justeret, hvilket kan forbedre ydeevnen af flydende kommaberegninger.
Mængden af polstring, der kræves til en datastruktur, afhænger af målprocessoren og tilpasningskravene for dens medlemmer. Nogle compilere giver muligheder for automatisk at tilføje polstring til strukturer, eller du kan tilføje polstring manuelt ved at indsætte tomme medlemmer i strukturen.