uthash C语言哈希操作宏实现
C 语言里的哈希操作用起来总有点不顺手?uthash就是个挺不错的选择。它不是库,而是一组用宏实现的轻量级代码,用起来贼方便,不用改你原有的结构,随便一个结构体加点宏,查找插入就全搞定了。
uthash 的 hash 函数实现方式比较,靠的是一堆宏拼出来的逻辑。听起来有点硬核,其实还挺灵活。比如你想给自定义结构体加个哈希表,用几个HASH_ADD
和HASH_FIND
宏就能搞定,不用写一堆繁琐逻辑。
用场也不少。你要是做网络协议、设备管理、或者写一些高性能服务端,uthash 用来存会话、查配置、做缓存,那都挺合适。性能也还可以,关键是代码量不大,集成方便。
有一点要注意哦:宏虽然好用,但调试起来不太直观。如果哪天你踩了个 bug,建议直接翻源码看那些HASH_
相关的定义,不然真容易绕晕。
如果你对宏还不太熟,推荐你先看看c 语言宏定义详解这篇文章,理解下宏展开的思路会更好上手。
对哈希表概念不太熟的,也可以看看实现哈希表数据结构这篇,打个基础再来用 uthash 也不迟。
如果你平时写的项目还停留在链表、顺序表这些结构,uthash 绝对值得一试,尤其是当你需要key-value
快速访问的时候。
59.83KB
文件大小:
评论区