回撥函式-對任意資料型別進行列印
阿新 • • 發佈:2020-12-13
# 回撥函式
函式指標做函式引數
## 實現對任意資料型別進行列印
定義一個void指標,然後講void指標的地址和使用者自己定義的函式用在回撥函式裡面來呼叫使用者的函式最後處理輸出。這裡的例子是用double來處理,其他的都是一樣的或者結構體變數也是一樣處理。
1 #define _CRT_SECURE_NO_WARNINGS 2 #include<stdio.h> 3 #include<stdlib.h> 4 //這個函式由使用者自己填寫,因為使用者知道自己想要 5 //列印什麼型別的資料 6 void MyPrint(void* a) 7 { 8View Codedouble *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 }