Может кто-нибудь дать мне конкретный пример функции обратного вызова в C? - PullRequest
0 голосов
/ 22 апреля 2019

Написание библиотеки очередей на C для школьного проекта. У меня проблемы с пониманием того, как реализовать функцию обратного вызова в main () для проверки библиотеки. Кто-нибудь сможет предоставить общие шаги для этого?

Каков синтаксис объявления функции обратного вызова?

1 Ответ

0 голосов
/ 22 апреля 2019

С помощью функции 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...