реклама на сайте
подробности

 
 
> Добавление смещения к указателю на функцию., Переменная типа указатель на функцию.
_Алекс
сообщение Dec 25 2006, 15:49
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 252
Регистрация: 14-09-06
Пользователь №: 20 377



Объявил переменную – указатель на функцию, вызываю pf();, получилось. Стало необходимо добавить смещение к началу вызова функции, чтоб выполнялась с определенного места а не сначала, пытаюсь прибавить константу, пишет не совместимость типов. Не подскажите как правильно добавить смещение к указателю на функцию, в виде константы типа usigned int или char.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
jorikdima
сообщение Dec 25 2006, 15:53
Сообщение #2


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



То есть чтоб функция не с начала начала работать???
Такое невозможно помоему, да и не логично
Go to the top of the page
 
+Quote Post
_Алекс
сообщение Dec 25 2006, 16:14
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 252
Регистрация: 14-09-06
Пользователь №: 20 377



Цитата(jorikdima @ Dec 25 2006, 15:53) *
То есть чтоб функция не с начала начала работать???
Такое невозможно помоему, да и не логично


Такое возможно, но не знаю как преобразовать тип указатель на функцию и константу, чтоб их суммировать. Нужно вот для чего, например есть в функции задержка на 20мс, чтоб колом все не стояло 20мс, выходим из функции запоминаем адрес возврата, делаем что –то другое полезное и возвращаемся через примерно 20мс в точку выхода.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 25 2006, 16:26
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(_Алекс @ Dec 25 2006, 15:14) *
Нужно вот для чего, например есть в функции задержка на 20мс, чтоб колом все не стояло 20мс, выходим из функции запоминаем адрес возврата,

и указатель стека. Кроме того, "запоминаем" это нормально, а написанное Вами ранее "константу
прибавляем" - есть верный путь к проблемам.
Цитата
делаем что –то другое полезное и возвращаемся через примерно 20мс в точку выхода.

Все не просто а очень просто - сладкая парочка setjmp() longjmp() официальный путь решения подобных проблем.
Ну а вообще и о системе подумать можно - вариации на тему sleep().


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- _Алекс   Добавление смещения к указателю на функцию.   Dec 25 2006, 15:49
|- - dxp   Цитата(_Алекс @ Dec 25 2006, 19:14) Цитат...   Dec 25 2006, 16:27
- - sensor_ua   Механизм сопрограмм на макросах поможет и без RTOS...   Dec 25 2006, 16:58
|- - zltigo   Цитата(sensor_ua @ Dec 25 2006, 15:58) Ме...   Dec 25 2006, 17:32
- - vmp   Если нельзя, но очень хочется... Попробуйте привес...   Dec 25 2006, 17:05
- - sensor_ua   ЦитатаКонечный автомат уже поминался Согласен, но,...   Dec 25 2006, 17:53
|- - zltigo   Цитата(sensor_ua @ Dec 25 2006, 16:53) Ту...   Dec 25 2006, 18:04
- - _artem_   Цитата(_Алекс @ Dec 25 2006, 14:49) Объяв...   Dec 25 2006, 18:13
|- - Rst7   Цитата(_artem_ @ Dec 25 2006, 17:13) имхо...   Dec 26 2006, 09:26
|- - dxp   Цитата(Rst7 @ Dec 26 2006, 12:26) Цитата(...   Dec 26 2006, 15:58
|- - _artem_   Цитата(Rst7 @ Dec 26 2006, 08:26) Цитата(...   Dec 26 2006, 16:29
|- - Сергей Борщ   Цитата(_artem_ @ Dec 26 2006, 15:29) Наве...   Dec 26 2006, 18:16
|- - _artem_   Цитата(Сергей Борщ @ Dec 26 2006, 17:16) ...   Dec 26 2006, 18:55
|- - _Алекс   Цитата(_artem_ @ Dec 26 2006, 18:55) Цита...   Dec 27 2006, 15:51
- - _artem_   И где же Вы это применяете ?   Dec 27 2006, 16:29
- - wolfram   Такая штука, которую предлагает Алекс реализована ...   Dec 29 2006, 08:46
- - _artem_   В компиляторах понятно - процесс кодообразования к...   Dec 29 2006, 11:19


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 12:00
Рейтинг@Mail.ru


Страница сгенерированна за 0.03971 секунд с 7
ELECTRONIX ©2004-2016