C语言函数指针,作为函数参数,就是所谓的注册回调函数?

C语言函数指针,作为函数参数,就是所谓的注册回调函数?

编码文章call10242025-06-29 1:21:002A+A-

函数指针变量作为函数形参

学习了函数指针变量之后,我们可以把一个函数名设置给函数指针变量,再由函数指针变量来调用该函数名。那么,在定义函数的时候,函数的形参变量可以接收实参变量传递过来的数据。所以,函数指针变量是一种变量类型,也可以作为函数的形参变量。程序测试例子如下:

深入学习,可以交个朋友,工人人人号:韦凯峰linux编程学堂

程序运行结果如下:

深入学习,可以交个朋友,工人人人号:韦凯峰linux编程学堂

可以看到,函数func1的定义如下:

void func1(void (*pfunc)(int))

其中形参的定义是

void (*pfunc)(int)

此时,这个形参变量就是一个函数指针变量。那么,在调用func1函数的时候,必须给形参变量赋值一个函数地址。而且根据形参变量的定义,该函数指针的返回值类型是void,形参列表是接收一个int类型的变量。这个格式与func函数的定义格式一致,所以,可以把func函数设置给func1函数的形参变量。那么,调用func1函数的形式如下:

func1(func);

此时,把func函数名作为实参变量,传递给func1函数的形参pfunc函数指针变量,相当于:

pfunc = func;

所以,func1函数的形参函数指针变量pfunc就得到func函数名的值,指向func函数在内存块在首地址。那么,就可以通过pfunc函数指针变量调用它所指向的func函数。

总结

本章节我们学习了“程序模块化设计”的知识,重点学习函数的定义和使用。这是一个非常重要的知识点,每一个知识点,读者都需要深入掌握。

每一章节,作者都提供了测试的例子,在录制的视频中,详细讲解每一个例子的代码。所以,建议读者跟着测试的例子,自己敲打代码进行测试,验证、总结出对每一个知识点的理解。

读者要仔细分析,掌握好每一个知识点,然后,自己总结出对该知识点的理解。自己总结出来的知识,理解才深刻,才是自己掌握的知识。

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4