C++学习14:使用typedef定义函数指针类型
2017-09-04 23:12
751 查看
最近在HM中遇到了typedef函数指针,现在来学习一下。
推荐阅读
http://blog.csdn.net/qll125596718/article/details/6891881
http://www.baidu.com/link?url=fIxmNZe4-1MTHD3bGGRxuUIwFdUyykOWWcFLwyWUK8GjD77jFcPNKvhRU9nzbl0KGRdvBcxUmiSEpUFkaPi-j4kW-BVtvWAjFrfr0f8vBuq&wd=&eqid=f6883844000009490000000359ad6a6c
可以看到,这里首先定义了cal_max函数,功能是计算两个int数中的最大值。同时定义了一个函数指针FP,其形式上和cal_max相同。在main函数中,FP指向了cal_max,有两种方式赋值和调用了函数,效果是一样的。
可以看到这里使用typedef定义了FP类型,然后定义了FP类型的变量fp,将fp指向cal_max,通过fp即可实现函数cal_max的功能。
使用typedef定义函数指针类型的优点在于:
1、可以用来定义该函数类型的函数指针,就不用每次使用函数指针都要写一次函数原型了;
2、有了类型名,就可以使用在容器里面,譬如map< int, 类型名 >,用于实现灵活的函数调用。
推荐阅读
http://blog.csdn.net/qll125596718/article/details/6891881
http://www.baidu.com/link?url=fIxmNZe4-1MTHD3bGGRxuUIwFdUyykOWWcFLwyWUK8GjD77jFcPNKvhRU9nzbl0KGRdvBcxUmiSEpUFkaPi-j4kW-BVtvWAjFrfr0f8vBuq&wd=&eqid=f6883844000009490000000359ad6a6c
1.函数指针
直接从例子入手,首先来看一个简单的函数指针:#include"iostream" using namespace std; int cal_max(int x,int y) { return (x>y)?x:y; } int (*FP)(int,int); int main() { int x = 1; int y = 2; FP = cal_max; //FP = &cal_max; cout << (*FP)(x,y) << endl; cout << FP(x,y) << endl; system("pause"); }
可以看到,这里首先定义了cal_max函数,功能是计算两个int数中的最大值。同时定义了一个函数指针FP,其形式上和cal_max相同。在main函数中,FP指向了cal_max,有两种方式赋值和调用了函数,效果是一样的。
2.函数指针类型
用typedef定义函数指针类型,让函数调用更加方便,下面看例子:#include"iostream" using namespace std; int cal_max(int x,int y) { return (x>y)?x:y; } typedef int (*FP)(int,int); int main() { int x = 1; int y = 2; FP fp = NULL; //fp = cal_max; fp = &cal_max; cout << (*fp)(x,y) << endl; cout << fp(x,y) << endl; system("pause"); }
可以看到这里使用typedef定义了FP类型,然后定义了FP类型的变量fp,将fp指向cal_max,通过fp即可实现函数cal_max的功能。
使用typedef定义函数指针类型的优点在于:
1、可以用来定义该函数类型的函数指针,就不用每次使用函数指针都要写一次函数原型了;
2、有了类型名,就可以使用在容器里面,譬如map< int, 类型名 >,用于实现灵活的函数调用。
相关文章推荐
- typedef函数指针与函数类型的定义及使用方式
- C语言学习6 :指针的定义,指针类型要合法,指针要初始化,指针做函数参数,数组和指针的通用性,指针+1所代表的空间,void * 指针,交换函数中的指针,数组和字符型指针区别,字符型指针的应用,使用指针完成字符操作函数
- typedef函数指针与函数类型的定义及使用方式
- C++------------typedef 函数指针类型定义
- [C++学习笔记14]动态创建对象(定义静态方法实现在map查找具体类名对应的创建函数,并返回函数指针,map真是一个万能类)good
- C++用typedef定义函数指针类型typedef可以用于定义函数指针类型
- C++------------typedef 函数指针类型定义
- C语言学习9: malloc动态内存存储,动态内存分配去空格字符增长版,动态内存分配去符号incr增长版,型参和返回值都是int型的函数的指针,main函数的地址也可以用指针指向,typedef定义函数指针,函数定义与嵌套的作用,返回函数指针类型,const作用
- Nginx阅读: typedef定义函数指针类型
- 关于C++中函数指针的使用(包含对typedef用法的讨论)
- 关于C++中函数指针的使用(包含对typedef用法的讨论)
- 使用typedef语句定义函数类型和函数指针
- 关于C++中函数指针的使用(包含对typedef用法的讨论)
- 关于C++中函数指针的使用(包含对typedef用法的讨论)
- (C++)用typedef定义函数指针类型
- 【C++学习笔记】12_指针的定义与使用
- 关于C++中函数指针的使用(包含对typedef用法的讨论)
- 关于C++中函数指针的使用(包含对typedef用法的讨论)
- 关于C++中函数指针的使用(包含对typedef用法的讨论)
- C++学习小记(使用定义在其他.cpp文件中的变量或函数)