# 回调函数
函数指针做函数参数
## 实现对任意数据类型进行打印
定义一个void指针,然后讲void指针的地址和用户自己定义的函数用在回调函数里面来调用用户的函数最后处理输出。这里的例子是用double来处理,其他的都是一样的或者结构体变量也是一样处理。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #define _CRT_SECURE_NO_WARNINGS 2 #include<stdio.h> 3 #include<stdlib.h> 4 //这个函数由用户自己填写,因为用户知道自己想要 5 //打印什么类型的数据 6 void MyPrint(void* a) 7 { 8 double *k = (double *)a; 9 printf("%lf", k); 10 } 11 12 //这个函数由我们提供,提供给用户一个接口来填写他的 13 //他的数据类型 14 void PrintAny(void *a,void(MyPrint)(void *a)) 15 { 16 MyPrint(a); 17 } 18 void test01() 19 { 20 void* a = NULL;//这里只是为了取一个地址,变量类型无所谓 21 PrintAny(a,MyPrint); 22 } 23 int main() 24 { 25 test01(); 26 return 0; 27 }