Re: 关于_LARGE_INTEGER 结构
Windows内核调试
关于_LARGE_INTEGER 结构
skyworth
2008-11-26, 19:22 下午
微软的声明如下:
typedef union _LARGE_INTEGER
{
struct
{
DWORD LowPart;
LONG HighPart;
};
struct
{
DWORD LowPart;
LONG HighPart;
} u;
LONGLONG QuadPart;
} LARGE_INTEGER, *PLARGE_INTEGER;
比较奇怪的是里面有两个相同的结构声明,为什么呢?
网上搜了一下,貌似也没什么结果,要么打不开,要么就是什么"the author does not care portablity at all"之类的批评,却没有解释原因……
Re: 关于_LARGE_INTEGER 结构
格蠹老雷
2008-11-26, 21:15 下午
这样就可以使用下面两种方法中的任一种来引用LowPart和HighPart:
LARGE_INTEGER li
li.u.LowPart
或者
li.LowPart
标准C不支持未命名的结构,所以习惯C语法的人会喜欢前一种用法;C++支持未命名结构,所以C++ FANS会觉得第一种方法累赘。上面的定义满足了两种人的编程习惯:-)
Re: 关于_LARGE_INTEGER 结构
MJ0011
2008-11-26, 21:16 下午
联合
Re: 关于_LARGE_INTEGER 结构
pch
2008-11-26, 22:05 下午
原来这样
Re: 关于_LARGE_INTEGER 结构
skyworth
2008-12-03, 18:52 下午
有道理,貌似用微软的编译器编译成C代码可以通过,待会儿试试别的编译器看看能不能通过。
Re: 关于_LARGE_INTEGER 结构
Da Vinci
2008-12-08, 13:28 下午
注意有个u. 其实是不同的