скажем, у нас есть союз:Как проверить, какой тип в настоящее время используется в объединении?
typedef union someunion {
int a;
double b;
} myunion;
Можно ли проверить, какой тип в союз после того, как я установил, например, а = 123? Мой подход состоит в том, чтобы добавить этот союз к некоторой структуре и установить uniontype в 1, когда он является int и 2, когда он двойной.
typedef struct somestruct {
int uniontype
myunion numbers;
} mystruct;
Есть ли лучшее решение?
FYI, этот метод называется «помеченным соединением». –
Лучшим решением является использование значений перечисления, а не 1, 2 и т. Д. –