三个例子
//例一
typedef char (*PTRFUN1)(int);
PTRFUN1 pb1;
char pc(int a) { return 'a'; }
//例二
typedef char PTRFUN2(int);
PTRFUN2 pb2;
char pb2(int a) { return 'a'; }
int main()
{
//例一
pb1 = pc;
pb1(1);
//例二
pb2(1);
//例三
PTRFUN2* pb3;
pb3 = pc;
pb3(1);
return 0;
}
例一和例二差别就在那个“*”上面,加了一个星号。
例一的“PTRFUN1 pb1;”的pb1是函数指针,而例二的“PTRFUN2 pb2;”整个是函数声明,例二的两个均叫做pb2,是同一个函数。而例三则是在例二的基础上加了一个星号,作用同例一。