wifidog 认证Lighttpd1.4.20源码分析之bitset.c(h) -------位集合的使用

使用一个比特位来表示一个事件的两种状态,即节省内存,又可以提高运行速度。在Lighttpd中,提供了一个bitset数据结构,用来管理使用一个比特位集合。

在bitset.h中,比特位集合的数据结构定义如下:

typedef struct

{

size_t *bits;

size_t nbits;

} bitset;

bits指向一个size_t类型的数组,存放bit集合。size_t类型通常被定义成一个无符号的整型(int或long),其长度和具体的机器有关,这个读者可以查阅相关的资料。nbits记录bitset中bit为的个数。其图示如下:

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

| bitset结构    |

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

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

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

|  nbits = 10  |

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

为了提高运行的速度,对与bitset的主要操作都有四个宏来实现:

各个宏的作用都在注释中说明,如下代码所示:


......本站只呈现部分内容,查看完整文章请到WiFiDog官网社区 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,转载请注明出处

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,880评论 6 13
  • 布隆过滤器 Bloom Filter 布隆过滤器,用来判断一个元素是否在集合中。它的特点是节省空间,但是有误判。有...
    周肃阅读 10,181评论 0 5
  • 梦见我和我弟去花市买了一盆花,花了18块钱,但是没有发芽。所以我就和我弟去找老板赔偿,一开始老板不认账,我就拿着包...
    BWV1007阅读 3,899评论 0 0
  • “毕业等于失业……”――大学生说 “读那么多书有什么用?到头来还不是基层打工!”――家长说 “早知道还不如初...
    晗一1673阅读 1,131评论 0 1
  • 照旧,从夜晚到黎明,醒来,照旧,洗把脸,赶地铁。入口处,旧卡过期,六月了,得买新月卡了。哟!六月第一天不是儿童节吗...
    三耳秀才阅读 1,339评论 0 0