wifidog 認(rèn)證Lighttpd1.4.20源碼分析之bitset.c(h) -------位集合的使用

使用一個(gè)比特位來表示一個(gè)事件的兩種狀態(tài),即節(jié)省內(nèi)存,又可以提高運(yùn)行速度。在Lighttpd中,提供了一個(gè)bitset數(shù)據(jù)結(jié)構(gòu),用來管理使用一個(gè)比特位集合。

在bitset.h中,比特位集合的數(shù)據(jù)結(jié)構(gòu)定義如下:

typedef struct

{

size_t *bits;

size_t nbits;

} bitset;

bits指向一個(gè)size_t類型的數(shù)組,存放bit集合。size_t類型通常被定義成一個(gè)無符號(hào)的整型(int或long),其長度和具體的機(jī)器有關(guān),這個(gè)讀者可以查閱相關(guān)的資料。nbits記錄bitset中bit為的個(gè)數(shù)。其圖示如下:

+-------------+

| bitset結(jié)構(gòu)? ? |

+-------------+? ? ? ? ? ? +-----------------------------+

|? bits? ? ? ? ? |? -------->? ? ? ? ? |? |? |? |? |? |? |? |? |? |? | | | | | |

+-------------+? ? ? ? ? ? +-----------------------------+

|? nbits = 10? |

+-------------+

為了提高運(yùn)行的速度,對(duì)與bitset的主要操作都有四個(gè)宏來實(shí)現(xiàn):

各個(gè)宏的作用都在注釋中說明,如下代碼所示:


......本站只呈現(xiàn)部分內(nèi)容,查看完整文章請(qǐng)到WiFiDog官網(wǎng)社區(qū) http://www.wifidog.pro/2015/04/15/wifidog%E8%AE%A4%E8%AF%81lighttpd%E4%BD%8D%E9%9B%86%E5%90%88%E4%BD%BF%E7%94%A8.html,轉(zhuǎn)載請(qǐng)注明出處

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說閱讀 12,501評(píng)論 6 13
  • 布隆過濾器 Bloom Filter 布隆過濾器,用來判斷一個(gè)元素是否在集合中。它的特點(diǎn)是節(jié)省空間,但是有誤判。有...
    周肅閱讀 4,853評(píng)論 0 5
  • 夢見我和我弟去花市買了一盆花,花了18塊錢,但是沒有發(fā)芽。所以我就和我弟去找老板賠償,一開始老板不認(rèn)賬,我就拿著包...
    BWV1007閱讀 727評(píng)論 0 0
  • “畢業(yè)等于失業(yè)……”――大學(xué)生說 “讀那么多書有什么用?到頭來還不是基層打工!”――家長說 “早知道還不如初...
    晗一1673閱讀 189評(píng)論 0 1
  • 照舊,從夜晚到黎明,醒來,照舊,洗把臉,趕地鐵。入口處,舊卡過期,六月了,得買新月卡了。喲!六月第一天不是兒童節(jié)嗎...
    三耳秀才閱讀 219評(píng)論 0 0

友情鏈接更多精彩內(nèi)容