Числа в полях структуры после двоеточия

Что означают числа после двоеточия в полях структуры? :thinking: Нигде больше такого не видел :man_shrugging:

Сколько битов нужно.

C Bit Fields | Microsoft Learn

Прочитал на обоих языках, но нифига не понял :man_shrugging: Что это всё значит?
Особенно вот это:

This example defines a two-dimensional array of structures named screen.
C

struct
{
    unsigned short icon : 8;
    unsigned short color : 4;
    unsigned short underline : 1;
    unsigned short blink : 1;
} screen[25][80];

The array contains 2,000 elements. Each element is an individual structure containing four bit-field members: icon, color, underline, and blink. The size of each structure is 2 bytes.

Что даёт указание битов?

Ну без указания эта структура с 4 полями занимала бы больше места, как минимум 4 байта.

Почему 4? :thinking: short ведь 2 байта. 4 по 2 = 8 же :man_shrugging:

Можно на char, uint8_t и т.п. заменить, тогда по 1.

а при указании бит они меньше байта занимают, получается? :thinking: