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

 
 
> Массив указателей функций в Си, не получается вызвать функцию из массива
kumle
сообщение Aug 30 2012, 08:16
Сообщение #1


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

Группа: Участник
Сообщений: 149
Регистрация: 15-12-09
Из: Москва
Пользователь №: 54 280



Всем привет. Сделал массив структур с указателями на функциии:

struct myTasks {
unsigned char id;
unsigned char state;
unsigned char cont;
void (*taskpointer)(unsigned char cont);
};

struct myTasks MT[MAX_TASKS];

extern void Task_0(unsigned char cont);
extern void Task_1(unsigned char cont);
extern void Task_2(unsigned char cont);

MT[0].taskpointer = Task_0;
MT[1].taskpointer = Task_1;
MT[2].taskpointer = Task_2;

Затем хочу вызвать в программе допустим функцию Task0:

(void*)MT[0].taskpointer(1); //1-это параметр передаваемый в ф-ю

И компилятор выдает ошибку Illegal cast-operation.
Причем если написать: (void*)MT[0].taskpointer; //без прараметра, то компилируется без ошибок.
Спрашивается как сделать с передачей параметра ?

Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 21:50
Рейтинг@Mail.ru


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