Syntax question on type declarations

I was looking through some code in the libraries and I saw a structure declaration as such:

typedef struct  {
  uint8_t nbr        :6 ;             // a pin number from 0 to 63
  uint8_t isActive   :1 ;             // true if this channel is enabled, pin not pulsed if false 
} ServoPin_t   ;

What is the :6 and the :1?


Those are called bit fields. It means that 'nbr' is an unsigned integer that is 6 bits long, and 'isActive' is 1 bit wide.



Thanks, Mike.