我有一種感覺,這個問題的答案是否定的,但是是否可以初始化某個工會的特定成員?例如以下:初始者,工會的具體成員
#include <cassert>
#include <Windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
auto time = 20090520145024798ull;
auto large = ULARGE_INTEGER() = {
{ time }
};
assert(large.QuadPart == time);
return 0;
}
(Visual Studio的2013中,Windows 10),產生一個編譯器「從‘無符號__int64’到‘DWORD’轉換」,這意味着它會試圖鞋拔的uint64_t中進DWORD。
ULARGE_INTEGER是工會:
typedef union _ULARGE_INTEGER {
struct {
DWORD LowPart;
DWORD HighPart;
} u;
ULONGLONG QuadPart;
} ULARGE_INTEGER;
是什麼標準說一下在這樣的情況下初始化的順序?我希望編譯器能夠看到QuadPart是分配的合適成員。
啊,就是這樣,謝謝巴里。 – Robinson