开发辅助工具
gperf¶
https://www.gnu.org/software/gperf/#TOCintroduction
GNU gperf是一个完美的hash函数生成器。对于给定的一列字符串,它可以生成一个hash函数和hash表,以C或C++的形式。对于输入的字符串可以依赖这个hash函数和hash表进行查找。这个hash函数是“完美”的,意思是:hash表是无冲突的,并且hash表的查找只需要一次简单的字符串比较。
例子
via: https://www.cnblogs.com/274914765qq/p/4589218.html
%{ /* 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 -t -L C example.gperf > example.c $ gcc -o example example.c $ ./example --name hello