怎么使用带参数的回调函数?


眼尖的朋友可能发现了,前面的例子里面回调函数是没有参数的,那么我们能不能回调那些带参数的函数呢?答案是肯定的。那么怎么调用呢?我们稍微修改一下上面的例子就可以了:
  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