Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/29: Рейтинг темы: голосов - 29, средняя оценка - 4.52
4 / 4 / 4
Регистрация: 26.12.2013
Сообщений: 59

CALLBACK функции: что и как

26.12.2013, 17:36. Показов 6051. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток.
Заранее прошу не пинать, если попал не в тот раздел. А теперь к делу.
Для чего нужны и как использовать CALLBACK функции?
Почитав в Вики, я знаю, что CALLBACK функции - функции, которые выполняются при вызове(я это понял как-то так) и они что-то сродни прерываниям. Но я это все представляю очень расплывчато.
Пожалуйста объясните что и к чему.
Заранее благодарен.
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.12.2013, 17:36
Ответы с готовыми решениями:

For_each и аргументы callback-функции; Как передать callback'у больше одного аргумента
Изучаю контейнеры и алгоритмы stl по Майерсу . С непривычки слегка охренел и запутался в них . В общем есть у меня простой вызов...

Как получить данные из callback функции
Есть функция которая парсит данные с сайта. Как вернуть эти данные и присвоить их переменной. НАпример я хочу сделать var data =...

Методы класса как callback функции
Всем привет. Пытаюсь разобраться как передавать методы класса в качестве callback. Я конечно понимаю, что есть решения вроде Boost или...

3
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
26.12.2013, 19:40
Callback-функции иногда еще называют функциями обратного вызова.
Вы пишете тело функции, но вызывается она не вами, а кем-то другим.
Такой подход часто оказывается очень удобным.

Возьмем для примера функцию обработки текста:
C
1
int process_text(char const *pText, onWord cb);
Первый параметр - указатель на текстовый буфер, второй - callback-функция,
которую process_text будет вызывать каждый раз, встречая в тексте отдельное слово.
Реализация этого callback-а пишется вами. Например, вы можете подсчитывать в
ней количество слов, или проверять орфографию, или еще что-то. Вот, как-то так-с...

C
1
2
3
4
5
6
7
8
int WordCount = 0;
 
void MyCallback(char const *pWord)
{
    ++WordCount;
}
 
process_text("Hello, World !", MyCallback);
В результате MyCallback будет вызвана дважды (первый раз для "Hello",
второй раз для "World"), в итоге счетчик станет равным 2.
0
4 / 4 / 4
Регистрация: 26.12.2013
Сообщений: 59
27.12.2013, 06:34  [ТС]
C++
1
int process_text(char const *pText, onWord cb);
onWord cb больше похоже на создание объекта класса
Я вчера порылся еще в инете, там пользовались указателем на функцию:
C++
1
void func(void CALLBACK(*callbackFunc)(int iNum)){callbackFunc(2);};
где
void func - функция, которая в качестве параметра принимает указатель на callback функцию
void CALLBACK(*callbackFunc)(int iNum) - указатель на callback функцию вместе с параметром
callbackFunc(2); - вызов callback функции с параметром 2.

А содержание самой callback функции примерно такое:
C++
1
void CALLBACK CallbackFunction(int iNum){cout << iNum<<endl;}
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
27.12.2013, 07:03
Цитата Сообщение от Andrey36652 Посмотреть сообщение
onWord cb больше похоже на создание объекта класса
Цитата Сообщение от Andrey36652 Посмотреть сообщение
Я вчера порылся еще в инете, там пользовались указателем на функцию:
cb и есть указатель на функцию. Скорее всего, тип onWord задан как-то так:
C++
1
typedef void (*onWord)(const char *);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.12.2013, 07:03
Помогаю со студенческими работами здесь

Как реализовать срабатывание Callback функции при событии?
Совсем запутался. Вот есть у меня callback функция предположим. Она принимает своим параметром другую функцию, в которой прописан нужный...

Как получить данные из Runnable процесса вызываемого из CallBack функции
Доброго всем суток, вопрос новичка, учусь.. Пишу программу под Андроид, в главном классе создал метод MethodName в котором всё...

Что-то типа array_map только, что бы еще ключ передавало в callback
Есть такая функция - array_map применяет к каждому элементу массива пользовательскую функцию, скажите а нет ли какой то такой же функции,...

callback функции не для кнопок на экране, а для клавиш на клав. и мышке. Как?
Я так понимаю, что в WIN API все действия делаются асинхронно через callback функции. Но как инициировать действие для клавиш клавиатуры...

Callback функции
Есть запрос вроде этого: somevar.select(data, function(response) { // callback code. }); Как отсюда вытащить данные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru