http://bbs.csdn.net/topics/310239341
#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;
怎么理解这个定义 ?
=============================================================================================
#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
//
如果编译器直接支持64位整数可以直接使用QuadPart(64位)
typedef struct _LARGE_INTEGER {
LONGLONG QuadPart;
} LARGE_INTEGER;
没有定义MIDL_PASS
typedef union _LARGE_INTEGER {
struct {
DWORD LowPart;
LONG HighPart;
};
struct {
DWORD LowPart;
LONG HighPart;
} u;
LONGLONG QuadPart;
} LARGE_INTEGER;
下面说一下这个结构的作用
如果你有编译器直接支持64位整数可以直接使用QuadPart(64位),
否则分别对LowPart(32位)和HighPart(32位)存取,HighPart的最高位为符号位。
表示数的范围:--3689348814741910324到+4611686018427387903
=============================================================================================
=============================================================================================
还是有点不明白的是
struct {
DWORD LowPart;
LONG HighPart;
};//这个是类型声明 好像不合语法
struct {
DWORD LowPart;
LONG HighPart;
} u; //这里定义变量 也好像不和语法
有这样声明和定义的吗?谁来解释下
=============================================================================================
struct {
DWORD LowPart;
LONG HighPart;
};//声明了一个无名结构
struct {
DWORD LowPart;
LONG HighPart;
} u; //这里用刚才的无名结构定义了一个结构变量
u