int (*pf)(char *)
是声明了一个名为pf的指针变量,这个指针要指向的是“parameter为char *
,返回值为int
类型”的函数,若要赋值,如下:
#include <stdio.h>
int (*pf)(char *);
int mprint(char *s) {
printf("test: %s\n", s);
return 0;
}
int main() {
pf = mprint;
(*pf)("zwy");
pf("zwy");
return 0;
}
typedef
可以定一个一个函数指针类型(暂且如此表述)
#include <stdio.h>
typedef int (*PF)(char *);
int mprint(char *s) {
printf("test: %s\n", s);
return 0;
}
int main() {
PF pf = mprint;
(*pf)("zwy");
pf("zwy");
return 0;
}
可以理解成typedef int (char *) *PF
,定义了一个数据类型PF
,该数据类型是指向“parameter为char *
,返回值为int
类型”的函数的指针类型。