Возможный дубликат:
Что означает «unsigned temp: 3»
struct sample{ int x :2; char y :4; };
Что делает оператор двоеточия в вышеуказанном коде?
Он используется для указания полей бит. Размер поля указывается в битах. Макет является специфичным для компилятора.