Computer hukommelse er normalt justeret til en grænse svarende i størrelse til systemets ordet størrelse. På en hypotetisk 32- bit system , forestille sig, at dette ord størrelse er fire bytes langt . I C- sprog, kan du skabe strukturer , der gemmer data . For at tilpasse dem til ordet størrelse , kan C compiler tilføjer polstring til strukturen . Du kan fjerne denne polstring ved hjælp af en præprocessor direktiv, der fortæller det til at justere data forskelligt. Ting du skal
C Integrated Development Environment , såsom Eclipse CDT
C Compiler , sådan en GCC
Vis Flere Instruktioner
1
Indlæs C IDE ved klikke på programmets ikon . Når den åbner , skal du vælge "File /New /Project" og vælg " C-projekt " for at oprette et nyt C-projekt . En tom kildekode fil vises i teksteditoren del af IDE .
2
Opret en " struktur" navn " A" med standard hukommelse tilpasning. Skriv følgende udtalelse på toppen af kildekoden fil : Hej
struct {} A
3
Tilføj nogle data medlemmer til struct "A. " Ved at blande heltal og rollefag , er du sikre , at den compiler puder strukturen. På en 32- bit system , hver af de to første int datatyper fylder fire bytes hukommelse , og er perfekt afstemt som den er. Men de to char datatyper hver tage en enkelt byte , og sammen besætte to byte data . Compileren vil pad det ud med to bytes af junk data at tilpasse dataene korrekt . Tilføj følgende udsagn til struct "A" ved at placere dem mellem de krøllede parenteser efter ordet
int a " struct ."
Int b ,
char a;
char b og
4
Opret en præprocessor direktiv, der fortæller det til at tilpasse sig til det 1 -byte grænsen , ikke 4 -byte grænse : Hej
# pragma pack (push , 1 )
5
Opret en anden struct , denne ene hedder "B ", og placere den umiddelbart efter præprocessor direktiv skrevet i det foregående trin.
struct {} B ;
6
Fyld struct "B" op med de samme datatyper som struct "A ", ved at skrive følgende udsagn i krøllede parenteser i struct "B. " Disse datatyper vil linje op til nærmeste byte , hvilket sker for at være 10 (fire for hver int , en for hver char ) . Der vil ikke være polstring i denne struktur
int a; .
Int b ,
char a;
char b og
< br > 7.
Nulstil tilpasningen tilbage til standardindstillingen ved at skrive følgende erklæring : Hej
# pragma pack ( pop)