|
0 / 0 / 0
Регистрация: 09.12.2014
Сообщений: 18
|
|
Указатель на функцию25.12.2014, 23:58. Показов 8082. Ответов 15
Метки нет (Все метки)
Добрый вечер! Недавно приспичило сделать программу с использованием указателя на функцию. Попытался разобраться сам, но большинство статей и форумов содержат, скорее, особенности использования. В связи с этим просьба: кто-нибудь может объяснить, что это за указатель такой и с чем его едят? Может какую-нибудь банальную программу в три строчки кинете, чтоб понятней было? Заранее спасибо!
0
|
|
| 25.12.2014, 23:58 | |
|
Ответы с готовыми решениями:
15
В функцию-метод передать указатель на другую функцию-метод и вызвать через переданный указатель
|
|
|
|||||||
| 26.12.2014, 00:05 | |||||||
2
|
|||||||
|
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
|
||||||||||||||||||
| 26.12.2014, 01:09 | ||||||||||||||||||
|
Добавлено через 14 минут
1
|
||||||||||||||||||
|
0 / 0 / 0
Регистрация: 09.12.2014
Сообщений: 18
|
|
| 26.12.2014, 19:03 [ТС] | |
|
lss, а каково тогда его назначение? куда проще просто вызывать функцию, разве нет? или же все таки есть рациональное объяснение, почему так лучше?
0
|
|
|
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
|
||
| 26.12.2014, 19:53 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 09.12.2014
Сообщений: 18
|
||||||
| 26.12.2014, 19:54 [ТС] | ||||||
|
lss, Croessmah, немного разобрался. в моем случае это нужно для передачи функции как параметра. но как мне прописать правильно параметры исходной функции? опираясь на пример IrineK сделал пока просто вариант с передачей одной функции в другую, но не соображу, как правильно прописать вызов в мэйне
0
|
||||||
|
zzzZZZ...
527 / 358 / 94
Регистрация: 11.09.2013
Сообщений: 2,041
|
||||||
| 26.12.2014, 19:56 | ||||||
|
могу кинуть такой пример - использую в проектах для микроконтроллеров
смысл в том, что есть некий массив указателей на функции и 2 функции - addTask( void (*pf)()) , и detelteTask() , они занимаются тем, что добавляют и удаляют эти самые задачи. Скажем у нас случилось прерывание(пришло сообщение по CAN или UART выполнить каку-нибудь команду), мы принимаем это сообщение, расшифровываем, и на основе его содержимого вызываем addTask(*(f)()) с тем что нам нужно, функция сама добавит задачу в очередь, когда мы вернёмся из прерывания то number_of_tasks будет !=0 , и мы выполним нашу задачу
0
|
||||||
|
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
|
||
| 26.12.2014, 19:58 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 09.12.2014
Сообщений: 18
|
|
| 26.12.2014, 20:01 [ТС] | |
|
lss, но мне надо задать параметры у function. но я ее не вызываю напрямую. как тогда это делать? прописать три cin в теле function? тогда она же будет каждый шаг запрашивать эти параметры
0
|
|
|
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
|
||
| 26.12.2014, 20:08 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 09.12.2014
Сообщений: 18
|
|||||||||||
| 26.12.2014, 20:14 [ТС] | |||||||||||
|
lss, попробовал так:
4 IntelliSense: значение типа "double (*)(double n, double m, double v, double i)" нельзя использовать для инициализации сущности типа "PFunction" f:\New Project\Source9.cpp 27 19 5 IntelliSense: аргумент типа "double (*)(double n, double m, double v, double i)" несовместим с параметром типа "PFunction" f:\New Project\Source9.cpp 29 19 и еще почему-то ругается на m здесь:
0
|
|||||||||||
|
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
|
||||||
| 26.12.2014, 20:26 | ||||||
|
Не нужно тупо коды переписывать, голову включай.
1
|
||||||
|
0 / 0 / 0
Регистрация: 09.12.2014
Сообщений: 18
|
|
| 26.12.2014, 20:41 [ТС] | |
|
lss, точно, завозился с функциями и забыл совсем про указатель. мне надо еще добавить две функции с исходной внутри, но в каждой объявлять параметры - не вариант. поэтому опять вопрос: как их задать в мэйне? к тому же в этом случае переменные становятся неописанными в функциях
0
|
|
|
45 / 31 / 18
Регистрация: 15.11.2014
Сообщений: 169
|
||||||
| 26.12.2014, 21:03 | ||||||
|
Вот наверно самый простой пример какой может быть
0
|
||||||
|
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
|
|||
| 26.12.2014, 22:23 | |||
|
0
|
|||
| 26.12.2014, 22:23 | |
|
Помогаю со студенческими работами здесь
16
Передать в неуправляемую функцию указатель на указатель
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|