typedef struct {
    unsigned int rgbd;
    _Alignas(unsigned int) unsigned short efg;
} rgbled;

typedef struct {
    unsigned int rgbd;
    unsigned int fg;
    unsigned int e;
} rgbled_bad;

rgbled_bad* create_bad_led();

// rgbled
// |          unsigned int rgbd          |
// dddd dddd rrrr rrrr gggg gggg bbbb bbbb
// .... ftte eeee eeee ____ ____ ____ ____
// |unsigned short efg|     padding      |
// 8 байт

// rgbled_bad
// |          unsigned int rgbd          |
// dddd dddd rrrr rrrr gggg gggg bbbb bbbb
// |unsigned int fg                      |
// .... .... .... .... .... .... .... .ftt
// | unsigned int e                      |
// .... .... .... .... .... ...e eeee eeee
// 12 байт

rgbled* create_led(void);

void set_Temp(rgbled* led, int tempK);
void set_R(rgbled* led, int red);
void set_G(rgbled* led, int green);
void set_B(rgbled* led, int blue);
void set_D(rgbled* led, int bright);
void set_F(rgbled* led, int type);
void set_T(rgbled* led, int work);
int get_Temp(rgbled* led);
int get_R(rgbled* led);
int get_G(rgbled* led);
int get_B(rgbled* led);
int get_D(rgbled* led);
int get_F(rgbled* led);
int get_T(rgbled* led);
void print_colorHEX(rgbled* led);
