|
眼尖的朋友可能發現了,前面的例子里面回調函數是沒有參數的,那么我們能不能回調那些帶參數的函數呢?答案是肯定的。那么怎么調用呢?我們稍微修改一下上面的例子就可以了:
- #include<stdio.h>
- int Callback_1(int x) // Callback Function 1
- {
- printf("Hello, this is Callback_1: x = %d ", x);
- return 0;
- }
- int Callback_2(int x) // Callback Function 2
- {
- printf("Hello, this is Callback_2: x = %d ", x);
- return 0;
- }
- int Callback_3(int x) // Callback Function 3
- {
- printf("Hello, this is Callback_3: x = %d ", x);
- return 0;
- }
- int Handle(int y, int (*Callback)(int))
- {
- printf("Entering Handle Function. ");
- Callback(y);
- printf("Leaving Handle Function. ");
- }
- int main()
- {
- int a = 2;
- int b = 4;
- int c = 6;
- printf("Entering Main Function. ");
- Handle(a, Callback_1);
- Handle(b, Callback_2);
- Handle(c, Callback_3);
- printf("Leaving Main Function. ");
- return 0;
- }
復制代碼
運行結果:
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. |