Tramite i campi dei bit di strutture o unioni:
codice:typedef struct boolean { unsigned flag : 1; } BOOL;
Il valore dopo i ":" rappresenta il numero di bit in cui sarà immagazzinato il membro della struttura. Si tratta comunque di un argomento da trattare con attenzione perchè se non si è sicuri di cosa esattamente si vuole ottenere si arriva solo ad un'applicazione che pecca decisamente in performance, dal momento che lavorare con i singoli bit costringe il compilatore a generare un linguaggio macchina meno efficiente.
Tuttavia, poichè il membro della struttura è unsigned, essa occuperà in memoria 4 byte effettivi, ne segue che il vantaggio in memoria non c'è. Infatti i campi di bit si usano di solito (o meglio di solito non si usano..) se i membri della struttura sono diversi, solo cosi si ottiene un considerevole risparmio di memoria.