С помощью функции call-back вы вызываете свою библиотеку, а затем библиотека перезванивает вам, например, для получения дополнительной информации, чтобы попросить продолжить некоторые вычисления или сообщить вам о некотором прогрессе.
То, что функция обратного вызова или как она выглядит, зависит от того, что ваша библиотека хочет делать.
- вызывать функцию библиотеки
f()
с указателем на вашу функцию - библиотека делает некоторые вещи, а затем вызывает вашу функцию
- вы делаете что-то и возвращаете
- ваша библиотечная функция продолжается
- ваша библиотечная функция наконец возвращается к вам.
Таким образом, вы должны написать свою функцию обратного вызова и затем передать указатель функции в вашу библиотеку, например:
int f(int prm1, int (*g)(void));
Это определяет, что ваша библиотечная функция f
имеет два параметра, int и a.указатель на функцию, не принимающую параметров и возвращающую int.Теперь вы пишете свою функцию:
int myCallBack(void)
{
// do something
return 1;
}
и теперь вы можете вызывать библиотечную функцию f
:
f(123, myCallBack);