软件工程实验5
SA17225400
哪來的妖精 +?《軟件工程(C編碼實(shí)踐篇)》MOOC課程作業(yè)http://mooc.study.163.com/course/USTC-1000002006?
GitHub :https://github.com/littlewulei/Software-Engineering-Lab.git
實(shí)驗(yàn)要求(參照視頻中的具體實(shí)驗(yàn)過程)
本實(shí)驗(yàn)在提供的代碼基礎(chǔ)上進(jìn)行
- 給lab5-1.tar.gz找bug,quit命令無法運(yùn)行的bug
- 利用callback函數(shù)參數(shù)使Linktable的查詢接口更加通用
- 注意接口的信息隱藏
實(shí)驗(yàn)過程
將老師給的源代碼拷貝到lab5文件夾下,編譯運(yùn)行
發(fā)現(xiàn)quit命令錯(cuò)誤傳入的p是NULL,但是根據(jù)help命令的結(jié)果,quit命令顯然是在鏈表里的。所以錯(cuò)誤應(yīng)該是在findcmd
函數(shù)里,定位到findcmd函數(shù)
發(fā)現(xiàn)findcmd函數(shù)返回的是SearchLinkTableNode 的結(jié)果,定位到SearchLinkTableNode函數(shù)
為什么返回的是NULL呢,原來是while 循環(huán)的條件是pNode != pLinkTable->pTail,也就是說循環(huán)并沒有遍歷尾節(jié)點(diǎn),
而quit恰好是鏈表的尾節(jié)點(diǎn)。由此將循環(huán)條件修改為 pNode != NULL,程序運(yùn)行正常
修改callback函數(shù)參數(shù),使LinkTable更通用:
修改Searchcondition 參數(shù):
修改SearchLinkTableNode參數(shù):
編譯運(yùn)行出錯(cuò),錯(cuò)誤應(yīng)該在findcmd函數(shù)里,向SearchLinkTableNode傳入第三個(gè)參數(shù)void * args 是個(gè)未知參數(shù),但是老師又沒有定義
全局變量,而且老師把這一段給掐掉了,所以暫時(shí)無法給出正確代碼。
上傳到github:
實(shí)驗(yàn)總結(jié)
通過這次實(shí)驗(yàn)讓我明白了回調(diào)函數(shù)的作用,我們不需要知道接口具體是怎樣實(shí)現(xiàn)的,我們只需要傳入需要的參數(shù),回調(diào)函數(shù)會(huì)自動(dòng)處理好,
并把結(jié)果返回給我們。這樣我們就可以設(shè)計(jì)出更通用的接口來。
?
轉(zhuǎn)載于:https://www.cnblogs.com/raincute/p/7715838.html
總結(jié)
- 上一篇: 番茄计时器电脑(番茄计时器电脑版)
- 下一篇: EXPORT_SYMBOL使用