#include <stdio.h>
typedef int (*Callback_onStart)(int, int);
typedef int (*Callback_onStop)(int);
int onStart(int a, int b) {
printf("onStart a(%d) b(%d)\n", a, b);
return a + b;
}
int onStop(int a) {
printf("onStop a(%d)\n", a);
return a;
}
typedef struct Callback {
Callback_onStart start;
Callback_onStop stop;
} Callback;
Callback gCallback;
void setCallback(Callback callback) {
gCallback = callback;
gCallback.start = onStart;
gCallback.stop = onStop;
}
int main() {
printf("main begin\n");
setCallback(gCallback);
int retStart = gCallback.start(5, 6);
int retStop = gCallback.stop(10);
printf("retStart(%d) retStop(%d)\n", retStart, retStop);
printf("main end\n");
return 0;
}