con C++ y algunas cosas Winapi, me encontré con este individuo:no puede dar sentido a LARGE_INTEGER estructura
#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;
Por lo tanto, la forma en que lo veo, dependiendo de MIDL_PASS se establece o no, esto es o bien una estructura muy compacta con solo un LONGLONG en ella, o el caso mucho más interesante, esto se convierte en una unión.
En caso de que se trate de una unión, todavía tiene sentido para mí, tener dos posibilidades de acceso, una vez el LONGLONG en un solo trozo, y una vez la estructura con Low y Highpart. Hasta ahora todo bien.
Pero no puedo entender el hecho de que la estructura se declara dos veces, de forma idéntica. Parece que ambos son anónimos, pero el último está disponible a través de "u".
Ahora a mi pregunta: ¿
¿Por qué las dos estructuras definidas, ¿cuál es el propósito de la primera, si ni siquiera puedo acceder a él, debido a no estar atado a ningún tipo/variable (de forma redundante?) nombre.
bien, ahora eso tiene mucho sentido, gracias: D – Tom
La gente debería seguir los estándares. Microsoft es el estándar. Y el círculo está completo. –