C语言函数指针
使用函数指针
#include<stdio.h>
//普通函数
int someFunction(int x,float y)
{
printf("%d %f\n",x,y);
return 0;
}
//接受函数的指针作为参数
void Call(int (*pF)(int,float),int x,float y)
{
pF(x,y);
}
int main()
{
//获得函数的指针,不需要&
int (*pF)(int,float)=someFunction;
//直接通过函数指针调用函数,不需要*
pF(1,1.0f);
//将函数指针作为参数传递,就和普通指针一样
Call(pF,1,1.0f);
return 0;
}
定义类型别名
#include<algorithm>
//定义特定类型函数指针的类型别名
typedef int (*PointerType)(int,int);
int main()
{
//可以用于Lambda表达式(C++)
PointerType someFunction=
[](int x,int y)->int{ return x+y; };
return 0;
}