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; }