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,转载请注明出处