怎么使用帶參數的回調函數?


眼尖的朋友可能發現了,前面的例子里面回調函數是沒有參數的,那么我們能不能回調那些帶參數的函數呢?答案是肯定的。那么怎么調用呢?我們稍微修改一下上面的例子就可以了:
  1. #include<stdio.h>
  2. int Callback_1(int x) // Callback Function 1
  3. {
  4.     printf("Hello, this is Callback_1: x = %d ", x);
  5.     return 0;
  6. }
  7. int Callback_2(int x) // Callback Function 2
  8. {
  9.     printf("Hello, this is Callback_2: x = %d ", x);
  10.     return 0;
  11. }
  12. int Callback_3(int x) // Callback Function 3
  13. {
  14.     printf("Hello, this is Callback_3: x = %d ", x);
  15.     return 0;
  16. }
  17. int Handle(int y, int (*Callback)(int))
  18. {
  19.     printf("Entering Handle Function. ");
  20.     Callback(y);
  21.     printf("Leaving Handle Function. ");
  22. }
  23. int main()
  24. {
  25.     int a = 2;
  26.     int b = 4;
  27.     int c = 6;
  28.     printf("Entering Main Function. ");
  29.     Handle(a, Callback_1);
  30.     Handle(b, Callback_2);
  31.     Handle(c, Callback_3);
  32.     printf("Leaving Main Function. ");
  33.     return 0;
  34. }
復制代碼
運行結果:
Entering Main Function.Entering Handle Function.Hello, this is Callback_1: x = 2Leaving Handle Function.Entering Handle Function.Hello, this is Callback_2: x = 4Leaving Handle Function.Entering Handle Function.Hello, this is Callback_3: x = 6Leaving Handle Function.Leaving Main Function.
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM