step-1 编译代码
ERROR原因:menu.c中缺少了string类库,无法使用strcmp
解决ERROR:menu.c中include <string.h>
导入类库后,再进行编译
step-2 运行并测试command
使用help打印出所有的command,可以看出只有
help
和quit
,挨个测试功能后发现quit
不能按照期望输出
step-3 排查错误原因
可以看到,输出This is a wrong cmd!是因为p是空指针,原因是FindCmd函数返回为空,查看FindCmd函数内容:
FindCmd函数只有一个尾调用,执行SearchLinkTableNode(head,SearchCondition)函数,SearchLinkTableNode代码如下:
call-in方式函数,如SearchLinkTableNode函数,其中有一个函数作为参数,这个作为参数的函数就是callback函数,如代码中Conditon函数