综合

函数指针

导读: 

函数指针:


定义:它是指向函数的指针,用来存储函数的地址。


语法定义:返回类型 (*函数指针名)(参数列表)如 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

相关资讯

发表评论
网友评论0 条评论)
暂无评论