uthash简介详见http://troydhanson.github.io/uthash/userguide.html,因为毕业论文中对其作了介绍,为避免查重率上升,这里不再作说明。
uthash全部使用了宏对一些函数作了实现。下面对其涉及的数据结构以及增、删、查找与遍历的流程作出介绍。
数据结构
uthash一共有三个数据类型,分别是UT_hash_handle
、UT_hash_bucket
与UT_hash_table
。
UT_hash_handle
是数据的基本存储单位,即元数据,每一个使用uthash的数据结构都应该将其作为自己的成员,这样需要使用uthash的数据结构将在uthash中存在挂载点。
struct my_struct {
int id; /* key */
char name[10];
UT_hash_handle hh; /* makes this structure