1、常见的用法
#include <stdio.h>
typedef int (*PFUN)(int, int); // PFUN 是函数指针类型
int fun(int a, int b)
{
return a + b;
}
int main(void)
{
PFUN pf = fun; // 或 PFUN pf = &fun;
printf("%d\n", pf(1, 2));
printf("%d\n", (*pf)(1, 2));
return 0;
}
2、第二种用法
#include <stdio.h>
typedef int FUN(int, int); // FUN 是函数类型
int fun(int a, int b)
{
return a + b;
}
int main(void)
{
FUN *pf = fun; // 或 FUN *pf = &fun;
printf("%d\n", pf(1, 2));
printf("%d\n", (*pf)(1, 2));
return 0;
}
3、关于函数指针的类型
#include <stdio.h>
typedef int FUN(int, int);
int fun(int a, int b)
{
return a + b;
}
int main(void)
{
// (int (*)(int, int)) pf; // 错误,不能这样定义变量
FUN *pf;
pf = (int (*)(int, int))1; // 强制类型转换,可以
pf = fun;
printf("%d\n", pf(1, 2));
printf("%d\n", (*pf)(1, 2));
return 0;
}