вызов процедуры по ее адресу
- Войдите на сайт для отправки комментариев
Пнд, 03/08/2015 - 16:14
всем привет. народ подскажите возможноли такое как вызов процедуры по ее адресу
допустим в секции setup в переменную записывается адрес некой функции, а потом осуществить переход на процедуру по зачению из переменной . если да то как это реализуется (можно пример , ссылку в инете , или просто ключевые слова для самостоятельного поиска)
http://arduino.ru/Reference/SwitchCase
не совсем то что хотелосьбы , сечас именно так и реализовано
всем привет. народ подскажите возможноли такое как вызов процедуры по ее адресу
допустим в секции setup в переменную записывается адрес некой функции, а потом осуществить переход на процедуру по зачению из переменной . если да то как это реализуется (можно пример , ссылку в инете , или просто ключевые слова для самостоятельного поиска)
Насколько мне известно в Ардуино не реализована технология callback-функций. И прямого доступа к памяти нет.
Никаких проблем нет. Описать переменную как указатель на функцию, в setup проинициализировать и использовать. Первое что нашёл по строке "C++ указатель на функцию"http://www.amse.ru/courses/cpp2/2011_04_11.html
UPD: Вот тупой пример Blink, прямо щас моргает у меня на столе:
Никаких проблем нет.
Век живи - век учись.
Использование указателей на функции есть, например, в одном из вариантов реализации конечных автоматов. Кому интересно, поищите, в гугле примеров немало.
В чистом С, например, таких приемом можно "реализовать" классы, например:
Тогда проинициализировав getValue & setValue (например в конструкторе или передав их как параметры в конструктор) можно использовать вызовы, типа:
Но у нас здесь не чистый С, а С++, потому нам такие извраты не интересны. Код я привел только для примера и он абстрактный.
Когда я использовал чистый С, видел подобные реализации в некоторых проектах.