一、简介
GNU 的 gperf 工具是一种 “完美的” 散列函数,可以为用户提供的一组特定字符串生成散列表、散列函数和查找函数的 C/C++ 代码。通过本文学习如何使用 gperf 实现 C/C++ 代码中高效的命令行处理。
二、安装
源码下载
http://www.gnu.org/software/gperf/ https://savannah.gnu.org/projects/gperf
用户手册
http://www.gnu.org/software/gperf/manual/gperf.html http://www.cnblogs.com/napoleon_liu/archive/2010/12/27/1918057.html
三、实例
参考
http://blog.chinaunix.net/uid-9950859-id-98839.html http://www.ibm.com/developerworks/cn/linux/l-gperf.html
示例1:参数解析
首先,编写.gperf 文件,此处以example1.gperf为例,内容如下
%{ /* C code that goes verbatim in output */ #include <stdio.h> #include <stdlib.h> #include <string.h> %} struct tl{ const char* name ; const char s2;}; %% "--name",‘n‘ "--love",‘l‘ %% int main(int argc,char **argv) { const struct tl * str2; int i; char *test; for(i=1; i<argc; i++) { if((str2 = in_word_set(argv[i],strlen(argv[i]))) != 0) { switch (str2->s2) { case ‘n‘: test=argv[i+1]; printf("My name is %s.\n",test); i++; break; case ‘l‘: printf("successed !\n"); break; } } } return 0; }
然后,执行如下指令,将.gperf 文件转换为.c文件
gperf -t -L C example1.gperf > example1.c
编译
gcc -g -o example1 example1.c
运行
时间: 2024-12-10 14:20:33