Это битовые поля, число после двоеточия указывает ширину в битах, зарезервированную для этого поля.Они часто используются при попытке сохранить пространство или при сопоставлении внешнего (например, принадлежащего оборудованию) регистра, имеющего битовые поля.Обратите внимание, что упаковка и порядок следования байтов влияют на то, как биты размещаются в памяти, поэтому их не следует использовать, если важна переносимость.
Обратите внимание, что использование подписанных битовых полей с очень маленькими размерами - очень плохая идея., например 1. Так как для знака необходим один бит, биты не остаются для фактического значения, что, как правило, не очень хорошая ситуация.Использование unsigned int myUnsigned : 1
исправляет это.