http://www.cs.cf.ac.uk/Dave/C/node13.html
Si può anche fare con un mix di strutture e union "particolari":
codice:struct byteBF { unsigned bit0:1; unsigned bit1:1; unsigned bit2:1; unsigned bit3:1; unsigned bit4:1; unsigned bit5:1; unsigned bit6:1; unsigned bit7:1; } union byte_u { struct byteBF bBF; unsigned char byte; } /*...*/ union byte_u bu; bu.byte=0; bu.bBF.bit0=1; bu.bBF.bit1=1; bu.bBF.bit2=0; /*...*/ fputc(bu.byte,stream);