本程序源自维基百科。
Declaring a bit field in C:
#include// opaque and show#define YES 1#define NO 0// line styles#define SOLID 1#define DOTTED 2#define DASHED 3// primary colors#define BLUE 4 /* 100 */#define GREEN 2 /* 010 */#define RED 1 /* 001 */// mixed colors#define BLACK 0 /* 000 */#define YELLOW (RED | GREEN) /* 011 */#define MAGENTA (RED | BLUE) /* 101 */#define CYAN (GREEN | BLUE) /* 110 */#define WHITE (RED | GREEN | BLUE) /* 111 */const char * colors[8] = {"Black", "Red", "Green", "Yellow", "Blue", "Magenta", "Cyan", "White"};// bit field box propertiesstruct box_props{ unsigned int opaque : 1; unsigned int fill_color : 3; unsigned int : 4; // fill to 8 bits unsigned int show_border : 1; unsigned int border_color : 3; unsigned int border_style : 2; unsigned int : 0; // fill to nearest byte (16 bits) unsigned char width : 4, // Split a byte into 2 fields of 4 bits height : 4;};