快捷搜索:  汽车  科技

指针函数的典型用法(看完这篇文章你就懂函数指针)

指针函数的典型用法(看完这篇文章你就懂函数指针)函数指针的使用有两种形式,这两种形式都正确:talk is cheap show me the code!函数指针本质上是一个指针,函数指针的初始化有如下3种初始化的形式(这3种形式都正确):通常情况下第一种和第二种方式比较常见。函数指针使用

指针是C语言的灵魂,而函数指针又是指针中的精华,使用函数指针可以实现很多设计模式:模板模式,策略模式等。同时使用函数指针可以实现类似JAVA中的虚函数,从而实现一些抽象类和抽象接口的设计,进而实现面向对象的编程设计。

函数指针声明

指针函数的典型用法(看完这篇文章你就懂函数指针)(1)

根据上述例子我们不难看出,函数指针的声明就是声明一个函数,然后把函数名用圆括号扩起来,最后在函数名前面加一个*号。

函数指针初始化

函数指针本质上是一个指针,函数指针的初始化有如下3种初始化的形式(这3种形式都正确):

指针函数的典型用法(看完这篇文章你就懂函数指针)(2)

通常情况下第一种和第二种方式比较常见。

函数指针使用

talk is cheap show me the code!

指针函数的典型用法(看完这篇文章你就懂函数指针)(3)

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

指针函数的典型用法(看完这篇文章你就懂函数指针)(4)

函数指针和typedef

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

指针函数的典型用法(看完这篇文章你就懂函数指针)(5)

指针函数的典型用法(看完这篇文章你就懂函数指针)(6)

函数指针用法

函数指针有3个主要用法:回调函数,跳转表,结构体操作。

回调函数能够实现模板设计模式(27种设计模式),使用例程如下:

指针函数的典型用法(看完这篇文章你就懂函数指针)(7)

指针函数的典型用法(看完这篇文章你就懂函数指针)(8)

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

指针函数的典型用法(看完这篇文章你就懂函数指针)(9)

指针函数的典型用法(看完这篇文章你就懂函数指针)(10)

跳转表可以代替复杂的switch语句,比如用这通讯数据解析中,通常情况下一个通讯协议有很多种类型指令,可以将每一种通讯类型指令解析功能定义成一个函数,然后使用跳转表来实现不同类型指令执行。

结构体操作运用了面向对象的设计思想,每个结构体是一个类,类的操作通过函数指针来实现,使用例程如下:

指针函数的典型用法(看完这篇文章你就懂函数指针)(11)

指针函数的典型用法(看完这篇文章你就懂函数指针)(12)

创作不易希望朋友们点赞,转发,关注。希望获取源码的朋友们在评论区里留言。

作者:李巍

Github:liyinuoman2017

猜您喜欢: