wir sagen, dass wir eine Gewerkschaft haben:Wie überprüft man, welcher Typ derzeit in der Union verwendet wird?
typedef union someunion {
int a;
double b;
} myunion;
Ist es möglich, zu prüfen, welche Art in der Vereinigung ist, nachdem ich zum Beispiel festgelegt a = 123? Meine Vorgehensweise besteht darin, diese Union zu einer Struktur hinzuzufügen und uniontype auf 1 zu setzen, wenn es int ist, und 2, wenn es doppelt ist.
typedef struct somestruct {
int uniontype
myunion numbers;
} mystruct;
Gibt es eine bessere Lösung?
FYI, diese Technik wird eine "markierte Union" genannt. –
Eine bessere Lösung ist die Verwendung von Enum-Werten anstelle von 1, 2 usw. –