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.