Memoria del computer di solito è allineato a un limite di dimensioni uguali alla dimensione della parola di sistema . Su un ipotetico sistema a 32 bit , immaginate che questa dimensione della parola è lunga quattro byte . Nel linguaggio C , è possibile creare strutture che memorizzano i dati . Al fine di allinearli alla dimensione della parola , il compilatore C può aggiungere imbottitura alla struttura . È possibile rimuovere questa imbottitura utilizzando una direttiva del preprocessore che dice di allineare i dati in modo diverso . Cose che ti serviranno 
 C Ambiente di sviluppo integrato , come ad esempio Eclipse CDT 
 C Compiler , un tale GCC 
 Show More Istruzioni 
 1 
 Caricare il C IDE cliccando sulla relativa icona del programma . Quando si apre, selezionare " File /Nuovo /Progetto" e scegliere " Progetto C " per creare un nuovo progetto C . Un file di codice sorgente di vuoto viene visualizzata nell'editor di testo parte dell'IDE. 
 2 
 creare una " struttura " di nome " A" con l'allineamento di memoria di default . Scrivi la seguente istruzione all'inizio del file di codice sorgente : 
 
 struct { } A; 
 3 
 Aggiungi alcuni membri dati per la struct "A. " Con l' intero missaggio e tipi di carattere , si sta assicurando che il compilatore riempimenti alla struttura . Su un sistema a 32 bit , i primi due tipi di dati int ciascuna occupano quattro byte di memoria e sono perfettamente allineati come è. Tuttavia, i due tipi di dati char occupano ciascuna un singolo byte , e insieme occupano due byte di dati . Il compilatore pad presente con due byte di dati spazzatura per allineare i dati in modo corretto. Aggiungere le seguenti dichiarazioni a struct " A" inserendoli tra le parentesi graffe dopo la parola 
 
 int a "struct ". ; 
 
 Int b ; 
 
 char a ; 
 
 char b ; 
 4 
 Creare una direttiva per il preprocessore che dice di allineare al limite di 1 byte , non il limite di 4 byte : 
 
 # pragma confezione (push , 1 ) economici 5 
 Creare un'altra struct , questo il nome di " B ", e metterlo subito dopo la direttiva del preprocessore scritto nel passaggio precedente . 
 
 struct { } B ; 
 6 
 Fill struct " B ", con gli stessi tipi di dati come struct "A ", scrivendo le seguenti dichiarazioni all'interno della parentesi graffe di struct "B. " Questi tipi di dati si allineano al byte più vicino , che risulta essere 10 ( quattro per ogni int , uno per ogni carattere) . Non ci sarà nessun imbottitura in questa struttura 
 
 int a; . 
 
 Int b ; 
 
 char a ; 
 
 char b ; 
 < br > 7 
 Ripristina l'allineamento al suo valore predefinito , scrivendo la seguente dichiarazione : 
 
 # pragma pack ( pop ) per