#include <stdio.h> int main(void) { /* define a small bit-field that can hold values from 0 .. 7 */ struct { unsigned int uint3: 3; } small; /* extract the right 3 bits from a value */ unsigned int value = 255 - 2; /* Binary 11111101 */ small.uint3 = value; /* Binary 101 */ printf("%d", small.uint3); /* This is in effect an infinite loop */ for (small.uint3 = 0; small.uint3 < 8; small.uint3++) { printf("%d\n", small.uint3); } return 0; }