标签:函数指针
函数指针:
定义:它是指向函数的指针,用来存储函数的地址。
语法定义:返回类型 (*函数指针名)(参数列表)如 int (*pFunc)(int ,int )
注:与声明普通变量一样,拥有声明类型(int (*)(int ,int))
变量名(pFunc);
也可以给定一个初值pFunc = Null;
函数指针的typedef;
基本数据类型的typedef( typedef int Integer),这时Integer a = 5与 int a = 5是等郊的
函数指针typedef(typedef int (*新类型名)(参数表)) ,这时可以用 新类型名 = 函数名;了
回调函数:它是一个函数,它由调用方自己实现,供被调方使用的函数
eg:
int sum(int a,int b)
{
return a + b;
}
int sub(int a,int b)
{
return a * b;
}
int getValue(int x,int y)
{
return sum(x,y);//如果我们要求函数的sub(x,y),则又要改这个函数的函数实现,不方便。
}
为了让我们不用改函数的实现,则可以利用回调函数的写法
typedef int (*pFunc)(int ,int ) 先定义一个函数指针pFunc
int getValue(int x,int y ,pFunc p)
{
return p(x,y);
}
int main()
{
int a = getValue(3,5 sum);
int a = getValue(3,5,sub)
// 函数调用时,我们只需要将这个sum回调自己实现,供getValue()被调方使用即可,
而不必关心被调用的内部实现,以后求和,求乘只需根据自己的需要传对应的回调函数
就可以了
}
本文出自 “函数指针” 博客,请务必保留此出处http://3488123.blog.51cto.com/3478123/1676541
标签:函数指针
原文地址:http://3488123.blog.51cto.com/3478123/1676541