16+
Понедельник
23 октября
Вход |Карта сайта | |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

Микроконтроллеры

 
   Новая тема Правила Регистрация Поиск »» Архив
Вернуться в конференциюТопик полностью
Dingo  (27.04.2017 15:27 - 27.04.2017 15:31) , в ответ на Дык эта... Массив указателей на функции, ходишь по массиву, вызываешь функции всякия... :) автор: Звероящер
Спрошу здесь, потому как связанно, хоть топик может и не совсем тот. Как попросить компилятор исполнить функцию по указателю? 
Указателями на функции не пользовался, но вроде так:
int (*p_func)(char arg);
где p_func - идентификатор, (*p_func) - это указатель, (*p_func)() - на функцию, (*p_func)(char arg) - принимающую char и int (*p_func)(char arg) - возвращающую int Так, дальше. Объявлена структура с полем связи, которое может быть указателем на функцию char func(char) или char* func(char).
struct my_str {
// ...
 void * link;
// ...
};
И есть указатель на неё. Обратиться к полю link через указатель на структуру: p_my_str->link . Пока всё понятно для меня. Собственно вопрос: как попросить компилятор исполнить функцию с соответствующими аргументами и использовать возвращённое значение? Что-то вроде
ch_val = some_text( ch_val2);
и соответственно
 str = some_text( p_char);
Вот что должно быть вместо some_text ? Что-то не соображу. На крайний случай сделаю так:
char (*p_func_ch)(char arg);
  p_func_ch = p_my_str->link; //присвоить один указатель другому; надеюсь не будет несоответствия типов благодаря void
  char_val = *p_func_ch( char_arg); // собственно вызов
Но вдруг есть более православный способ? С другой стороны, вряд ли будет это читаемо.
Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7526 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXVII