Computer minne er vanligvis justert til en grense lik i størrelse til systemet ordet størrelse. På en hypotetisk 32 -bit system , forestill deg at dette ordet størrelse er fire byte . I C-språk , kan du lage strukturer som lagrer data . For å justere dem til ordet størrelse , kan den C-kompilator legge polstring til strukturen . Du kan fjerne denne polstring ved hjelp av en preprocessor direktiv som forteller det til å justere data annerledes. Du trenger
C Integrated Development Environment , som for eksempel Eclipse CDT
C Compiler , slik GCC
Vis flere instruksjoner
en
Legg C IDE av klikke på programikonet . Når den åpnes, velger du "Fil /Ny /Project" og velg "C Project" for å opprette en ny C-prosjekt . En tom kildekoden filen vises i teksteditoren delen av IDE .
2
Lag en " struct " heter " A" med standard minne justering. Skriv følgende uttalelse på toppen av kildekoden filen:
struct { } A;
3
Legg noen data medlemmer til struct " A." Ved å blande heltall og tegntype , er du sørge for at kompilatoren pads strukturen . På en 32 -bit system , de to første int datatyper hvert ta opp fire byte med minne og er perfekt justert som den er. Men de to char datatyper hver tar opp en enkelt byte , og sammen opptar to byte med data . Kompilatoren vil pad ut dette med to byte med søppel data for å justere dataene riktig. Legg til følgende utsagn for å konstruere "A" ved å plassere dem mellom klammeparentesene etter ordet
int en " struct . ";
Int b;
røye a;
røye b;
4
Lag en preprocessor direktiv som forteller den om å justere til en - byte grense, ikke 4 - byte grense : en
# pragma pakke ( push, 1 )
5
Opprett en struct , denne heter " B ", og plassere den umiddelbart etter preprocessor direktiv skrevet i forrige trinn .
struct { } B;
6
Fyll struct "B" opp med samme datatyper som struct " A ", ved å skrive følgende utsagn innenfor krøllete parentes av struct " B." Disse datatyper vil stille opp til nærmeste byte , som skjer for å være 10 ( fire for hver int , en for hver røye ) . Det blir ingen polstring i denne strukturen
int a; .
Int b;
røye a;
røye b;
7
Reset justeringen tilbake til standard ved å skrive følgende utsagn : en
# pragma pakke ( pop )