我使用gperf工具是由于要裁剪字符转换库libiconv,libiconv库中就使用到了gperf这个工具,为了更好地理解iconv库,所以学习了一下gperf的使用。
关于gperf的介绍可以百度、google。GNU官方网站上的解释是:
GNU gperf是一个完美的hash函数生成器。对于给定的一列字符串,它可以生成一个hash函数和hash表,以C或C++的形式。对于输入的字符串可以依赖这个hash函数和hash表进行查找。这个hash函数是“完美”的,意思是:hash表是无冲突的,并且hash表的查找只需要一次简单的字符串比较。
说白了,就是假如你有一堆字符串,并且想使用hash来进行索引。通常的做法是你要自己去设计hash函数,生成hash表。现在这个工作可以交个gperf去做了。这些hash函数和hash表是以c代码或者c++代码的形式生成的,你可以在你的代码中直接使用。
例子的使用可以参考这个人的帖子http://bbs.chinaunix.net/thread-787506-1-1.html,我觉得写得很好了。
这个人的下载包里还有一份关于gperf的手册,介绍的使用方法是比较详细的了。
自己动手写几个例子,就会明白这个东西还是很好用的。