Я пытаюсь сделать это:
typedef struct {
uint16_t red : 6;
uint16_t green : 5;
uint16_t blue : 5;
} color_t
Затем я хотел бы получить что-то вроде:
color_t clr;
clr.red = 0;
clr.green = 10;
clr.blue = 15;
И записать составную переменную clr в int:
int value = clr; // this does not work
fprintf(draw, "%4X", value);
Причина, по которой я это делаю, заключается в том, что я хочу создать цвета, такие как оранжевый, фиолетовый и т. Д., И нарисовать их на экране из файла. Внутри файла я пишу цвет в шестнадцатеричном формате.
Другое дело, что я хотел бы сделать это позже в своем коде:
if (clr == value) { ... }
Или, другими словами, яХотелось бы сравнить значения из struct bitfield и int, содержащие реальное шестнадцатеричное значение цвета.