网易云ID:Nerd2dian0
GitHub源码: https://github.com/Nerd2dian0/Youcan/tree/master/lab5(下面的是修改的主要代码,想看全部代码请看gayhub,谢谢!报告质量不在贴图多少)
实验要求:
具体过程:
任务一,寻找bug:
从云盘下载好源代码,上传给GitHub,演示后quit命令出现问题:
分析原因,源码在linktable.c中SearchLinkTableNode中存在语句while(pNode != pLinkTable->pTail),而quit是尾节点,从而出错。
修改后的代码为:
演示结果:
任务二、三,利用callback使接口更通用以及接口信息的隐藏:
menu.c 和 LinkTable.c体现callback如下:
menu.c:
linktable.c
具体过程是:在主函数中调用了FindCmd函数从而调用linktable.c中的searchlinktable,searchlinktable 回调(callback)menu.c中的searchcondition函数,进行匹配,如果命令匹配返回命令对应值。
接口信息的隐藏:将linktable.h的结构体转移给linktable.c中实现了信息的隐藏。
遇到的问题,将信息隐藏时,需要在linktable.h中对结构体定义。
实验总结:初步认识了callback的调用和信息隐藏,使得接口更安全更方便使用。