wifidog 认证Lighttpd1.4.20源码分析之bit

2015-04-15  本文已影响29人  3c937c88e6c0

使用一个比特位来表示一个事件的两种状态,即节省内存,又可以提高运行速度。在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,转载请注明出处

上一篇下一篇

猜你喜欢

热点阅读