【转】[C++]LARGE_INTEGER 类型使用
?
????__int64 file_offset;
?
????上面之所以定義的變量名為file_offset,是因為文件中的偏移量是一種常見的要使用64位數據的情況。同時,文件的大小也是如此(回憶上一小節中定義的文件大小)。32位數據無符號整型只能表示到4GB。而眾所周知,現在超過4GB的文件絕對不罕見了。但是實際上__int64這個類型在驅動開發中很少被使用。基本上被使用到的是一個共用體:LARGE_INTEGER。這個共用體定義如下:
?
????typedef __int64 LONGLONG;??
????typedef union _LARGE_INTEGER {
????????struct {
????????????ULONG LowPart;
????????????LONG HighPart;
????????};
????????struct {
????????????ULONG LowPart;
????????????LONG HighPart;
????????} u;
????????LONGLONG QuadPart;
????} LARGE_INTEGER;
?
????這個共用體的方便之處在于,既可以很方便的得到高32位,低32位,也可以方便的得到整個64位。進行運算和比較的時候,使用QuadPart即可。
?
????LARGE_INTEGER a,b;
????a.QuadPart = 100;
????a.QuadPart *= 100;
????b.QuadPart = a.QuadPart;
????if(b.QuadPart> 1000)
????{
????????KdPrint(“b.QuadPart< 1000, LowPart = %x HighPart = %x”, b.LowPart,b.HighPart);
????}
???
????上面這段代碼演示了這種結構的一般用法。在實際編程中,會碰到大量的參數是LARGE_INTEGER類型的。
總結
以上是生活随笔為你收集整理的【转】[C++]LARGE_INTEGER 类型使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LVITEM结构-列表视图控件的一个数据
- 下一篇: C语言的VC开发环境界面介绍,【c语言在