typedef的功能是定义新的类型。第一句就是定义了一种PTRFUN的类型,并定义这种类型为指向某种函数的指针,这种函数以一个int为参数并返回char类型。后面就可以像首先,使用typedef 定义函数指针,代码看起来更简洁,也更不容易出错。其次,当函数指针作为其它函数的参数,特别是作为返回值时,直接使用的函数指针无法编译。
returnType(*valName)(paramType) 而typedef int (*TemplateFn)(int, int)的作用,就是将上面int (*a)(int, int)定义变量a的代码简化成用TemplateFn来代替,使代码更加简介清晰。类似的,定义数组指针的别名就是typedef int (*int_arr_pnt)[4];
1、可以用来定义该函数类型的函数指针,就不用每次使用函数指针都要写一次函数原型了;2、有了类型名,就可以使用在容器里面,譬如map
charlcFun(inta){return;}};CAca;typedefchar(CA::*PTRFUN)(int);PTRFUNpFun;voidmain(){pFun=CA::lcFun;ca.(*pFun)(2);}在这里,指针的定义与使用都加上了“类限制”或“对typedef的功能是定义新的类型。第一句就是定义了一种PTRFUN的类型,并定义这种类型为指向某种函数的指针,这种函数以一个int为参数并返回char类型。后面就可以像