Dela via


Inkapslade fackföreningar

En union som är innesluten i sin diskriminering i en struktur inom är en inkapslad union. Den inkapslade unionen indikeras av förekomsten av växla nyckelord. Den här typen av union är så namngiven eftersom MIDL-kompilatorn automatiskt kapslar in unionen och dess discriminant i en struktur för överföring under ett fjärrproceduranrop.

Om union-taggen saknas (U1_TYPE i exemplet ovan) genererar kompilatorn strukturen med union-fältet med namnet tagged_union.

Fackföreningarnas form måste vara densamma mellan plattformarna för att säkerställa sammanlänkning.

En beskrivning av formen på en inkapslad union finns i union.

Exempel

typedef union _S1_TYPE switch (long l1) U1_TYPE 
{ 
    case 1024: 
        float f1; 
    case 2048: 
        double d2; 
} S1_TYPE; 
 
/* in generated header file */ 
typedef struct _S1_TYPE 
{ 
    long l1; 
    union 
    { 
        float f1; 
        double d2; 
    } U1_TYPE; 
} S1_TYPE;

Relaterad information finns i MIDL Base Types, char, [context_handle], enum, [first_is], [handle], [ignore], int, [ignore], [last_is], [length_is], [max_is], [ms_union], Nonencapsulated Unions, [ptr], [ref], [size_is], [string], struct, switch, [switch_is], [switch_type], [transmit_as], unionoch [unika]