Указатели на функции - C (СИ) (72547)

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. У меня есть 3 функции.
f1(char p)
{
    ...;
}
 
f2(int ser_write(char p)
{
    ...;
}
 
f_init(int flag)
{
    ...;
}
В функции f_init(int flag), которая вызывается в main(), необходимо настроить указатель, так чтобы, в зависимости значения flag, вызывалась или f1 или f2. Не могли подсказать как это реализовать? Я написал следующее:
typedef void *(FUNC)(char c);
FUNC function;
Но после того, как я пытаюсь присвоить
function = &f1;
или
function = &f2;
Компилятор ругается на меня:
error: lvalue required as left operand of assignment

Решение задачи: «Указатели на функции»

textual
Листинг программы
typedef void (*FUNC)(char c);
FUNC function;

Объяснение кода листинга программы

  1. Создается тип данных указатель на функцию, которая принимает один аргумент типа char и не возвращает ничего.
  2. Переменной function присваивается значение указателя на функцию.
  3. Возможно, функция будет вызвана в дальнейшем для обработки переданного ей символа.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.571 из 5
Похожие ответы