最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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++中實(shí)現(xiàn)多態(tài)有幾種方式小結(jié)

    C++中實(shí)現(xiàn)多態(tài)有幾種方式小結(jié)

    在C++中,多態(tài)是一種面向?qū)ο缶幊痰奶匦?允許以統(tǒng)一的方式處理不同類(lèi)型的對(duì)象,并根據(jù)實(shí)際對(duì)象的類(lèi)型來(lái)執(zhí)行相應(yīng)的操作,本文給大家介紹了C++中實(shí)現(xiàn)多態(tài)有幾種方式小結(jié),需要的朋友可以參考下
    2024-12-12
  • C++與Qt的內(nèi)存管理機(jī)制詳解

    C++與Qt的內(nèi)存管理機(jī)制詳解

    這篇文章主要介紹了C++與Qt的內(nèi)存管理機(jī)制使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • C語(yǔ)言棧順序結(jié)構(gòu)實(shí)現(xiàn)代碼

    C語(yǔ)言棧順序結(jié)構(gòu)實(shí)現(xiàn)代碼

    一個(gè)能夠自動(dòng)擴(kuò)容的順序結(jié)構(gòu)的棧 ArrStack 實(shí)例 (GCC編譯),有需要的朋友可以參考一下
    2013-10-10
  • 全面了解#pragma once與 #ifndef的區(qū)別

    全面了解#pragma once與 #ifndef的區(qū)別

    下面小編就為大家?guī)?lái)一篇全面了解#pragma once與 #ifndef的區(qū)別。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-08-08
  • C++中l(wèi)ist容器的實(shí)現(xiàn)

    C++中l(wèi)ist容器的實(shí)現(xiàn)

    本文主要介紹了C++中l(wèi)ist容器的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • C語(yǔ)言對(duì)CSV文件從最后往前一行一行讀取的實(shí)現(xiàn)方法

    C語(yǔ)言對(duì)CSV文件從最后往前一行一行讀取的實(shí)現(xiàn)方法

    今天小編就為大家分享一篇關(guān)于C語(yǔ)言對(duì)CSV文件從最后往前一行一行讀取的實(shí)現(xiàn)方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • C++使用curl庫(kù)的完成流程

    C++使用curl庫(kù)的完成流程

    curl 是一個(gè)利用URL語(yǔ)法在命令行方式下工作的文件傳輸工具,curl不但提供了一個(gè)可執(zhí)行的工具庫(kù),還提供了供程序開(kāi)發(fā)的libcurl庫(kù),該庫(kù)使用c語(yǔ)言編寫(xiě),支持跨平臺(tái),本文給大家介紹了C++使用curl庫(kù)的完成流程,需要的朋友可以參考下
    2024-09-09
  • C++下標(biāo)運(yùn)算符詳解

    C++下標(biāo)運(yùn)算符詳解

    C語(yǔ)言中的下標(biāo)運(yùn)算符用于訪(fǎng)問(wèn)數(shù)組或指針變量中的元素,它使用方括號(hào) [] 來(lái)表示,并在方括號(hào)內(nèi)指定元素的索引位置,本文給大家詳細(xì)的講解一下C++的下標(biāo)運(yùn)算符,需要的朋友可以參考下
    2023-09-09
  • C語(yǔ)言菜鳥(niǎo)基礎(chǔ)教程之條件判斷

    C語(yǔ)言菜鳥(niǎo)基礎(chǔ)教程之條件判斷

    本文給大家簡(jiǎn)單介紹了下C語(yǔ)言中的條件判斷語(yǔ)句的語(yǔ)法和用法示例,非常簡(jiǎn)潔實(shí)用,有需要的小伙伴可以參考下
    2017-10-10
  • 全面解析設(shè)計(jì)模式中的建造者模式及相關(guān)C++實(shí)現(xiàn)

    全面解析設(shè)計(jì)模式中的建造者模式及相關(guān)C++實(shí)現(xiàn)

    這篇文章主要介紹了設(shè)計(jì)模式中的建造者模式及相關(guān)C++實(shí)現(xiàn),需要的朋友可以參考下
    2016-03-03

最新評(píng)論

金溪县| 肇源县| 石家庄市| 岐山县| 虹口区| 南城县| 漠河县| 建湖县| 合江县| 阜康市| 舒兰市| 昌黎县| 灵台县| 左云县| 和田县| 丹寨县| 弋阳县| 涿鹿县| 高安市| 铁岭市| 革吉县| 博爱县| 北票市| 许昌县| 永清县| 潜山县| 宣武区| 深州市| 大连市| 玉门市| 平陆县| 镇安县| 大埔县| 原平市| 长海县| 怀远县| 陇川县| 弋阳县| 洪江市| 于田县| 青河县|