工程化编程实战callback接口学习笔记
1.在VSCode下编译运行menu
编译menu,成功运行后执行help,quit命令,运行quit时发现无法正常执行
2.使用GDB调试
查看代码,在109行处打上断点,执行quit后发现p指针为空。于是查看FindCmd函数
查看代码发现 while条件跳过了尾部指针,将条件改为pnode!=null后 成功运行quit命令。
3.分析callbac接口
用一张图来说明什么是回调函数
假设我们要使用一个排序函数来对数组进行排序,那么在主程序(Main program)中,我们先通过库,选择一个库排序函数(Library function)。但排序算法有很多,有冒泡排序,选择排序,快速排序,归并排序。同时,我们也可能需要对特殊的对象进行排序,比如特定的结构体等。库函数会根据我们的需要选择一种排序算法,然后调用实现该算法的函数来完成排序工作。这个被调用的排序函数就是回调函数(Callback function)。