typedef在定义函数指针中的作用 typedef关键字在C和C++语言中用于为复杂的类型声明定义一个新的、更简单的名字(别名)。在定义函数指针时,typedef可以大大简化复杂的类型声明,使得代码更加清晰易读。它允许我们为函数指针类型创建一个简洁的别名,从而在后续的代码中更方便地使用该类型。
// int (int, int) 函数指针类型重命名为 pFun_add // 该类型变量可以直接接收 函数名 ( 函数地址 ) typedef int (*pFun_add)(int, int); 使用定义的 函数指针类型 调用函数 : 定义函数指针类型 pFun_add 的 变量 , 然后 将 add 函数地址 赋值给 该变量 , 然后 通过 函数指针变量 调用该函数 ; 代...
char(*pFun)(int); //typedefchar(*pFun)(int) //跟上一行功能等同 /*typedef的功能是定义新的类型。第一句就是定义了一种PTRFUN的类型,并定义这种类型为指向某种函数的指针,这种函数以一个int为参数并返回char类型。*/ char glFun(int a){return;} void main() { pFun =glFun; (*pFun)(2); } 第...
typedef void(MAX)(int, char); MAX* pFunc = func; (2)先定义出函数指针的类型,再通过指针类型定义函数指针变量 typedef void(*MAX)(int, char); MAX pFunc = func; (3)重点:直接定义函数指针变量 int max(int a,int b); int (*p1max) (int a,int b) = max; ...
typedef函数指针,又称为类型定义函数指针,它是指向函数的指针,是一种数据类型,它可以定义一个名称,用于存储指向特定函数的指针。由于函数指针本身也是变量,因此可以存储在另一个指针中或者作为普通变量使用。函数指针与普通变量不同,其存储的是函数的地址而不是函数本身,因此函数指针可以被用来实现函数指针数组,实现函数...
//形式同 typedef int* PINT;void myFun(int x);void hisFun(int x);void herFun(int x);void callFun(FunType fp,int x);int main(){ callFun(myFun,100);//传入函数指针常量,作为回调函数 callFun(hisFun,200); callFun(herFun,300); return 0;}void callFun(FunType fp,int x...
typedef void (CUtil::*pUFunc)(int); //定义原型为void CUtil::func(int)的函数指针的别名为pUFunc map<int,pUFunc> funcMap; //可以用做map容器的元素类型 void laner(int x); void execute(); }; CUtil::CUtil() { funcMap[0] = &CUtil::laner; //这里初始化map容器,关联数字0和函数laner ...
typedef int (*FUNC_P)(int, int)定义了一个函数指针类型,可以使用FUNC_P去定义指向函数的指针,其指向的函数类型必须是返回值为int、参数为两个且均为int。 比如FUNC_P p=add,就是定义了一个指针p,并且让其指向add函数。此时,p(1,2)等价于add(1,2)。
typedef定义可以简化函数指针的定义,在定义一个的时候感觉不出来,但定义多了就知道方便了,上面的代码改写成如下的形式: #include<iostream>#include<string>usingnamespacestd;inttest(inta);voidmain(intargc,char*argv[]) { cout<<test<<endl; typedefint(*fp)(inta);//注意,这里不是生命函数指针,而是定义一...