#include <stdio.h> typedef void (*CallBackFun)(char *str); void CallBackFunA(char *ptr) { printf("Callback function A str is %s\n",ptr); } void CallBackFunB(char *ptr) { printf("Callback function B str is %s\n",ptr); } //方式一:命名方式 void callfunA(CallBackFun callbackfun,char *ptr) { printf("start callback function A by name\n"); callbackfun(ptr); } //方式二:通过函数指针的方式 void callfunB(void (*callbackfun)(char *),char *ptr) { printf("start callback function B by function pointer\n"); callbackfun(ptr); } int main() { callfunA(CallBackFunA,"A"); callfunB(CallBackFunB,"B"); return 0; }