1. 安装gperf
2. 编写gperf文件,实例如下所示:
%{
#include<stdio.h>
#include<string.h>
%}
struct keyval{
const char *key;
int val;
};
%%
if,10
of,20
while,30
case,40
switch,50
my,60
%%
int main(int argc, char *argv[])
{
char *str = argv[1];
struct keyval *kv = NULL;
kv = in_word_set(str, strlen(str));
if (kv)
{
printf("%s:%d\n", kv->key, kv->val);
}
return 0;
}
3. 将gperf文件生成c文件,命令如下所示:
gperf -t -L C test.gperf > test.c
4. 编译生成的c文件
gcc test.c -o test
(在编译的过程中出现如下错误):
查看test.gperf后发现没有出现name字段,所以查看生成的test.c文件:
发现有name字段的出现,并将该字符串替换位自定义结构体中的key。继续编译就可以同通过了。
5. 执行