Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/26: Рейтинг темы: голосов - 26, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 16.05.2009
Сообщений: 26
1

Что такое CALLBACK функция......

14.06.2009, 20:35. Просмотров 4723. Ответов 4
Метки нет (Все метки)

Что такое CALLBACK функция......
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.06.2009, 20:35
Ответы с готовыми решениями:

Что такое виртуальная функция и зачем она нужна?
Мне с трудом пришлось понять, пока не прочитал книгу и не проработал код на виртуальных функциях....

Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?
Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?

Callback функция
Простой вопрос: я правильно понял, сallback-функцией просто называется функция, к которой...

Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?
Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?

4
77 / 53 / 68
Регистрация: 15.03.2007
Сообщений: 6,909
15.06.2009, 14:19 2
Дословно это 'функция обратного вызова'. Часто используется для извещения программы о наступлении какого-либо события, например, завершения асинхронной операции ввода/вывода. Еще одна область применения это совместная обработка данных 'внешней функцией' (функция WinAPI, run-time библиотеки C/C++) и функцией в твоей программе. Самый простой пример - сортировка массива с помощью функции qsort. qsort реализует общий алгоритм быстрой сортировки, а от программиста требуется предоставить функцию сравнения элементов массива.
0
0 / 0 / 0
Регистрация: 15.07.2008
Сообщений: 173
25.06.2009, 21:54 3
а чуть подробней ...
0
0 / 0 / 0
Регистрация: 15.07.2008
Сообщений: 173
28.06.2009, 13:15 4
Создаю я обьект, передаю его конструктору другого обьекта.
Теперь по определенным событиям во втором обьекте, он будет вызывать
функции/методы первого обьекта. Методы первого обьекта стали колбэк
функциями(так?), но на этапе проектирования первого класса/обьекта я может быть и не подозревал о необходимости подобного использования его методов, т.е. создавал их просто как методы.
Зачем получается нужен этот модификатор CALLBACK, и как быть в ситуации когда при создании метода я еще не знаю будет он колбек или не будет ?
В ява нет такого понятия как колбэк функции,а то что они позволяют делать можно выполнить обычными функциями. Помоему так.
0
0 / 0 / 0
Регистрация: 20.06.2009
Сообщений: 13
02.07.2009, 02:06 5
Если ты разработал класс таким образом, что в случае CALLBACKа его методы нельзя использовать, то ты неправильно класс разработал.
Поясняю пример callback для функции qsort. Эта функция может сортировать любые данные - строки, дробные, целые, классы, структуры и т.д. Но сама эта функция не знает и не может знать как отсортировать например массив структур, созданных пользователем. Поэтому в качестве одного из параметров qsort передается указатель на функцию, которая будет выполнять сравнение 2х структур и говорить какая из них должна быть на первом месте, а какая на втором. Эту функцию должен написать программер, который знает что за структуры он сортирует и знает правила, по которым они должны сортироваться.
Таким образом это - callback функция. qsort ее вызывает (call), а она возвращает (back) результат.
Еще один пример callback - это использование MFC класса CListCtrl (список). Для него можно выставлять параметр, чтобы он не хранил значения элементов в себе а посылал месагу родительскому окну. В ответ на эту месагу родительское окно должно отдавать данные, которые будут выводиться на экран. В данном случае месага есть пример callback. Т.е окно посылает (call) месагу, а в ответ (back) приходят данные.
Если говорить в общем, то callback - это нарушение прямолинейного выполнения программы. Т.е. функции вызываются не из главного цикла и не в тот момент, когда этого хочет программа, а в тот момент, когда этого хочет функция (или другой процесс), с которой мы установили отношения. Система месаг винды в общем то ярчайший пример использования callback'ов.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.07.2009, 02:06

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

callback функция
Здраствуйте!!! Занимаюсь разработкой снифера под DVB-карту. Пытаюсь получить MPEG-поток....

Что такое хэндлер файла? Что такое файловый указатель?
Что такое хэндлер файла? Что такое файловый указатель?

Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из них
Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из...

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.