#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; }