大家好,欢迎来到IT知识分享网。
指针是C语言的灵魂,而函数指针又是指针中的精华,使用函数指针可以实现很多设计模式:模板模式,策略模式等。同时使用函数指针可以实现类似JAVA中的虚函数,从而实现一些抽象类和抽象接口的设计,进而实现面向对象的编程设计。
函数指针声明

根据上述例子我们不难看出,函数指针的声明就是声明一个函数,然后把函数名用圆括号扩起来,最后在函数名前面加一个*号。
函数指针初始化
函数指针本质上是一个指针,函数指针的初始化有如下3种初始化的形式(这3种形式都正确):

通常情况下第一种和第二种方式比较常见。
函数指针使用
talk is cheap, show me the code!

函数指针的使用有两种形式,这两种形式都正确:

函数指针和typedef
上述函数指针的使用没有体现出“类型”的概念,使用起来也很不方便,使用typedef可以让函数指针更加直观,show me the code :


函数指针用法
函数指针有3个主要用法:回调函数,跳转表,结构体操作。
回调函数能够实现模板设计模式(27种设计模式),使用例程如下:


跳转表能够实现策略设计模式(27种设计模式),可以代替复杂的switch语句,使用例程如下:


跳转表可以代替复杂的switch语句,比如用这通讯数据解析中,通常情况下一个通讯协议有很多种类型指令,可以将每一种通讯类型指令解析功能定义成一个函数,然后使用跳转表来实现不同类型指令执行。
结构体操作运用了面向对象的设计思想,每个结构体是一个类,类的操作通过函数指针来实现,使用例程如下:


创作不易希望朋友们点赞,转发,关注。希望获取源码的朋友们在评论区里留言。
作者:李巍
Github:liyinuoman2017
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/178682.html