工程化编程实战callback接口学习笔记

一、

 

1. 在menu头文件加上 #include <string.h> 后,编译运行  gcc -o menu .\linktable.c .\menu.c ,会在目录下生成menu.exe文件 

 

2. 运行结果:

 

 

3. 从输出结果定位到源文件代码处:

 

 

再到FindCmd:

 

 其中,SearchCondition是函数指针,定义如下,功能是比较节点中的cmd与输入cmd的值:

再到SearchLinkTableNode函数,其中condition是指向一个函数,这个函数返回int,接受参数为tLinkTableNode的指针,在这里指向的是SearchCondition,
功能是循环查找直到链表结尾,但是可以发现,其while循环,若条件不成立(即pNode == pLinkTable->pTail
),则直接返回NULL,不再检查尾结点,所以只要修改语句检查一下尾节点即可。

 

 

 修改如下:

 

 

运行,成功:

 

 

二、

回调函数:回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。

 

posted @ 2020-03-19 18:33  iuysa  阅读(137)  评论(0编辑  收藏  举报