uthash版本 :2.0.2
作者:jafon.tian
转载请注明出处:https://blog.youkuaiyun.com/JT_Notes
简要说明
uthash是采用宏函数来完成hash表功能。总体上可以分为两大类:
1. API宏函数
2. 内部宏函数
API宏函数
uthash提供了两大类对外API宏函数:
1. 快捷宏函数。快捷宏可以操作key数据类型是整数,指针或字符串的hash表(需要将UT_hash_handle名称取为hh)。快捷宏比一般宏使用更少的参数,对那些采用一般数据类型做key的情形使用起来会简单一些。
2. 一般宏函数。一般宏定义可以被用在key不是一般数据类型或者是多个成员组合或者UT_hash_handle名称不是hh的情形。这些宏需要更多的参数,因而也提供了更大的灵活性。
如果快捷宏已经可以满足你的需要,那就使用快捷宏,这样会使你的代码更具可读性。
- 便捷宏定义
名称 | 参数及简要说明 |
---|---|
HASH_ADD_INT | (head, intfield, add) 基于HASH_ADD的类型定制宏,key类型为int,key大小为sizeof(int) HASH_ADD(hh,head,intfield,sizeof(int),add) |
HASH_REPLACE_INT | (head, intfield, add, replaced) 基于HASH_REPLACE的类型定制宏,key类型为int,key大小为sizeof(int) HASH_REPLACE(hh,head,intfield,sizeof(int),add,replaced) |
HASH_FIND_INT | (head, findint, out) 基于HASH_FIND的类型定制宏,key类型为int,key大小为sizeof(int) HASH_FIND(hh,head,findint,sizeof(int),out) |
HASH_ADD_STR | (head, strfield, add) 基于HASH_ADD的类型定制宏,key类型为char [ ] ,key大小使用uthash_strlen计算 |
HASH_REPLACE_STR | (head, strfield, add, replaced) 基于HASH_REPLACE的类型定制宏,key类型为char [ ] ,key大小使用uthash_strlen计算 |
HASH_FIND_STR | (head, findstr, out) 基于HASH_FIND的类型定制宏,key类型为char [ ] ,key大小使用uthash_strlen计算 |
HASH_ADD_PTR | (head, ptrfield, add) 基于HASH_ADD的类型定制宏,key类型为指针,key大小为sizeof(void *) |
HASH_REPLACE_PTR | ( |