структуры и объединения в с++
#include <iostream>
struct widget {
char brand[20];
int type;
union id {
long id_num;
char id_char[20];
} id_val;
};
int main() {
widget prize;
if (prize.type == 1)
std::cin >> prize.id_val.id_num;
else
std::cin >> prize.id_val.id_char;
return 0;
}
я не понимаю что происходит в данном куске кода:
std::cin >> prize.id_val.id_num;
и соответственно в:
std::cin >> prize.id_val.id_char;
как я понял в структуре помещается объединение и в объединении задаются дополнительные параметры для структуры но что значит id_val
я понять не как не могу знаю только что для структур это значит создание переменной определённого типа в моём случае типа widget но может ли это работать и для объединений или это что то другое подскажите пожалуйста и простите если вопрос был не понятен.