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



=============================================================================================
posted on 2015-03-03 09:56  醉依危栏听松涛  阅读(910)  评论(0编辑  收藏  举报