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

 
 
> Вызов разных функций с разными праметрами через указатель, Возможно ли такое в СИ?
Alla_student
сообщение Oct 9 2015, 08:54
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 84
Регистрация: 5-04-11
Пользователь №: 64 146



Подскажите пожалуйста -

Возможен, ли, вызов разных функций с разными праметрами через указатель?
Язык СИ (Keil)?
Если да, то как лучше реализовать (желательно с примером).

Я хотела вызывать различные функции через функцию указатель и различными параметрами, которые могут меняться (время события, состояние и т.д.) и передавать вызываемой функции.

Заранее спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
CrimsonPig
сообщение Oct 10 2015, 09:41
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 329
Регистрация: 23-04-14
Пользователь №: 81 502



Цитата(Alla_student @ Oct 9 2015, 09:54) *
Возможен, ли, вызов разных функций с разными праметрами через указатель?
Если да, то как лучше реализовать (желательно с примером).

Я хотела вызывать различные функции через функцию указатель и различными параметрами, которые могут меняться (время события, состояние и т.д.) и передавать вызываемой функции.


Слишком общий вопрос. На С можно сделать вообще все, включая аналоги виртуальных функций и DCOM sm.gif Вопрос в цене реализации и понятии, нужно ли оно вообще.
"Различные параметры" - что означает в данном контексте ? Одинаковый набор различных значений ? Если так, то сигнатуры функций будут одними и тееми же. Вызывайте их через указатель одного типа и все.
Если наборы параметров разные, но похожие, то можно их все запихать в структуру и передавать эту структуру в функции по указателю. В этом случае сигнатуры функций тоже будут одинаковыми..

E.g:
CODE

struct TParamStruct
{
uint32 param1;
uint32 param3;
uint8 param4;
const char* pMsg;
};

typedef void (TMyFoo*) (TParamStruct*);

TMyFoo pFoo1;
TMyFoo pFoo2;

TParamStruct params1 = {...};
TParamStruct params2 = {...};

pFoo1(params1);
pFoo2(params1);
pFoo1(params2);



Go to the top of the page
 
+Quote Post
Alla_student
сообщение Oct 13 2015, 14:22
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 84
Регистрация: 5-04-11
Пользователь №: 64 146



Цитата(CrimsonPig @ Oct 10 2015, 12:41) *
...
Если наборы параметров разные, но похожие, то можно их все запихать в структуру и передавать эту структуру в функции по указателю. В этом случае сигнатуры функций тоже будут одинаковыми..


Спасибо, вызов одного из полей структуры - парметров в зависимости от функции, подходящий вариант.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 9th August 2025 - 10:00
Рейтинг@Mail.ru


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