Con C++ e alcune cose WinAPI, ho incontrato questo ragazzo:non può dare un senso a LARGE_INTEGER struct
#if defined(MIDL_PASS)
typedef struct _LARGE_INTEGER {
#else // MIDL_PASS
typedef union _LARGE_INTEGER {
struct {
DWORD LowPart;
LONG HighPart;
};
struct {
DWORD LowPart;
LONG HighPart;
} u;
#endif //MIDL_PASS
LONGLONG QuadPart;
} LARGE_INTEGER;
Quindi, il mio modo di vedere, a seconda MIDL_PASS stato impostato o no, questa è o un struttura molto compatta con solo un LONGLONG in esso, o il caso molto più interessante, questo diventa un sindacato.
Nel caso in cui questo è un sindacato, ha ancora senso per me avere due possibilità di accesso, una volta LONGLONG in un blocco, e una volta la struttura con Basso e Alto. Fin qui tutto bene.
Ma non ho alcun senso dal fatto che la struttura sia dichiarata due volte, identicamente. Sembra che siano entrambi anonimi, ma quest'ultimo è disponibile tramite "u".
Ora alla mia domanda:
Perché sono le due le strutture definite, qual è lo scopo del primo, se non riesco nemmeno accedervi, a causa di non essere legato ad alcun tipo/variabili (ridondante?) nome.
ok, ora che ha molto senso, grazie: D – Tom
Le persone dovrebbero seguire gli standard. Microsoft è lo standard. E il cerchio è completo. –