用C++和一些WINAPI東西的感覺,我遇到這個傢伙:不能讓LARGE_INTEGER結構
#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;
因此,根據MIDL_PASS我看到它的方式,被設置與否,這可以是一個非常緊湊的結構,只有一個LONGLONG或更有趣的情況下,這成爲一個聯盟。
如果這是一個聯合,對於我來說,有兩種可能的訪問方式,一種是LONGLONG在一個塊中,另一種是帶有Low和Highpart的結構。 目前爲止這麼好。
但我無法理解這一事實,即結構被聲明兩次,完全相同。看起來他們都是匿名的,但後者可以通過「u」獲得。
現在我的問題:
爲什麼定義的兩個結構,什麼是第一位的目的,如果我甚至無法訪問它,由於沒有被綁定到任何類型/變量(冗餘?)名稱。
好吧,現在,這使得很多道理,謝謝:D – Tom 2010-08-31 07:47:07
人們應該遵循標準。微軟是標準。圓圈是完整的。 – 2014-05-07 21:45:04