欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++ LARGE_INTEGER解析與使用案例詳解

 更新時(shí)間:2021年08月28日 11:31:56   作者:零點(diǎn)零一  
這篇文章主要介紹了C++ LARGE_INTEGER解析與使用案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

這里解釋前面碰到的LARGE_INTEGER結(jié)構(gòu)。與可能的誤解不同,64位數(shù)據(jù)并非要在64位操作系統(tǒng)下才能使用。在VC中,64位數(shù)據(jù)的類(lèi)型為_(kāi)_int64。定義寫(xiě)法如下:

    __int64 file_offset

    上面之所以定義的變量名為file_offset,是因?yàn)槲募械钠屏渴且环N常見(jiàn)的要使用64位數(shù)據(jù)的情況。同時(shí),文件的大小也是如此(回憶上一小節(jié)中定義的文件大?。?。32位數(shù)據(jù)無(wú)符號(hào)整型只能表示到4GB。而眾所周知,現(xiàn)在超過(guò)4GB的文件絕對(duì)不罕見(jiàn)了。但是實(shí)際上__int64這個(gè)類(lèi)型在驅(qū)動(dòng)開(kāi)發(fā)中很少被使用。基本上被使用到的是一個(gè)共用體:LARGE_INTEGER。這個(gè)共用體定義如下:

    typedef __int64 LONGLONG;  

    typedef union _LARGE_INTEGER {
        struct {
            ULONG LowPart;

            LONG HighPart;

        };

        struct {
            ULONG LowPart;

            LONG HighPart;

        } u;

        LONGLONG QuadPart;

    } LARGE_INTEGER;

    這個(gè)共用體的方便之處在于,既可以很方便的得到高32位,低32位,也可以方便的得到整個(gè)64位。進(jìn)行運(yùn)算和比較的時(shí)候,使用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);

    }

    上面這段代碼演示了這種結(jié)構(gòu)的一般用法。在實(shí)際編程中,會(huì)碰到大量的參數(shù)是LARGE_INTEGER類(lèi)型的。

驅(qū)動(dòng)開(kāi)發(fā)中,我們除了可以使用LONGLONG這個(gè)表示64位結(jié)構(gòu)的數(shù)據(jù)外。還可以使用一個(gè)叫做LARGE_INTEGER的數(shù)據(jù)結(jié)構(gòu)來(lái)表示64位數(shù)據(jù)。它的定義如下

typedef union _LARGE_INTEGER {  
    struct {  
        ULONG LowPart;  
        LONG HighPart;  
    } DUMMYSTRUCTNAME;  
    struct {  
        ULONG LowPart;  
        LONG HighPart;  
    } u;  
#endif //MIDL_PASS  
    LONGLONG QuadPart;  
} LARGE_INTEGER;

LARGE_INTEGER是一個(gè)聯(lián)合體。設(shè)計(jì)的非常巧妙。聯(lián)合體中的3個(gè)元素可以被認(rèn)為是LARGE_INTEGER的3個(gè)定義

(1)DUMMYSTRUCTNAME由2部分組成。一個(gè)是低位的32位整數(shù)LowPart。另一個(gè)就是高位的整數(shù)咯。在小端的情況下。低32位數(shù)字在前。高32位在后。

如果將這個(gè)64位整數(shù)賦值100.可以這么寫(xiě)

LARGE_INTEGER value;  
value.LowPart = 100;  
value.HighPart = 0;

(2)u由2部分組成。一個(gè)是低位的32位整數(shù)LowPart。另一個(gè)就是高位的整數(shù)咯。在大端的情況下。高32位數(shù)字在前。低32位在后。

如果將這個(gè)64位整數(shù)賦值100.可以這么寫(xiě)

LARGE_INTEGER value;  
value.u.LowPart = 100;  
value.u.HighPart = 0; 

(3)當(dāng)LARGE_INTEGER 等價(jià)于LONGLONG的時(shí)候。如果將這個(gè)64位整數(shù)賦值100.可以這么寫(xiě)

LARGE_INTEGER value;  
value.QuadPart = 100;

到此這篇關(guān)于C++ LARGE_INTEGER解析與使用案例詳解的文章就介紹到這了,更多相關(guān)C++ LARGE_INTEGER解析與使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • c語(yǔ)言分離三位數(shù)的實(shí)現(xiàn)

    c語(yǔ)言分離三位數(shù)的實(shí)現(xiàn)

    這篇文章主要介紹了c語(yǔ)言分離三位數(shù)的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • C語(yǔ)言中進(jìn)行大小寫(xiě)字母轉(zhuǎn)化的示例代碼

    C語(yǔ)言中進(jìn)行大小寫(xiě)字母轉(zhuǎn)化的示例代碼

    C語(yǔ)言標(biāo)準(zhǔn)庫(kù)中提供了用于大小寫(xiě)轉(zhuǎn)換的函數(shù),使得這一操作變得簡(jiǎn)單而高效,本文將詳細(xì)介紹如何在C語(yǔ)言中進(jìn)行大小寫(xiě)字母的轉(zhuǎn)換,包括相關(guān)的函數(shù)和示例代碼,需要的朋友可以參考下
    2024-03-03
  • C/C++中的內(nèi)存管理小結(jié)

    C/C++中的內(nèi)存管理小結(jié)

    這篇文章主要介紹了C/C++中的內(nèi)存管理小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • C++控制臺(tái)版掃雷游戲

    C++控制臺(tái)版掃雷游戲

    這篇文章主要為大家詳細(xì)介紹了C++控制臺(tái)版掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C++面試八股文之什么是構(gòu)造函數(shù)

    C++面試八股文之什么是構(gòu)造函數(shù)

    構(gòu)造函數(shù)是一種特殊的成員函數(shù),用于創(chuàng)建和初始化類(lèi)的對(duì)象,這篇文章主要為大家詳細(xì)介紹了C++中構(gòu)造函數(shù)的相關(guān)知識(shí)點(diǎn),需要的可以參考一下
    2023-06-06
  • 淺談const變量賦值報(bào)錯(cuò)分析

    淺談const變量賦值報(bào)錯(cuò)分析

    在類(lèi)中 只有靜態(tài)變量能賦值 如果你不賦值 編譯器會(huì)認(rèn)為你這個(gè)變量根本沒(méi)用 不能被修改 又沒(méi)有初始值 兩個(gè)辦法 在構(gòu)造函數(shù)的初始化列表賦值 或者在const前面加一個(gè)static
    2015-07-07
  • C語(yǔ)言文件操作大全

    C語(yǔ)言文件操作大全

    這篇文章主要介紹了C語(yǔ)言文件操作大全的相關(guān)資料,需要的朋友可以參考下
    2018-03-03
  • 基于C++制作一個(gè)簡(jiǎn)單的跑酷游戲

    基于C++制作一個(gè)簡(jiǎn)單的跑酷游戲

    這篇文章主要為大家詳細(xì)介紹了如何利用C++制作一個(gè)簡(jiǎn)單的跑酷小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2023-06-06
  • 深入解析C++中的虛函數(shù)與多態(tài)

    深入解析C++中的虛函數(shù)與多態(tài)

    對(duì)C++ 了解的人都應(yīng)該知道虛函數(shù)(Virtual Function)是通過(guò)一張?zhí)摵瘮?shù)表(Virtual Table)和一個(gè)指向虛函數(shù)表的指針(vptr)來(lái)實(shí)現(xiàn)的
    2013-09-09
  • 一篇文章了解c++中的new和delete

    一篇文章了解c++中的new和delete

    C語(yǔ)言提供了malloc和free兩個(gè)系統(tǒng)函數(shù),完成對(duì)堆內(nèi)存的申請(qǐng)和釋放,而C++則提供了兩個(gè)關(guān)鍵字new和delete,下面這篇文章主要給大家介紹了如何通過(guò)一篇文章了解c++中new和delete的相關(guān)資料,需要的朋友可以參考下
    2021-12-12

最新評(píng)論