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

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

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

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

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

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

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

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

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


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

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

7   голосов , оценка 3.571 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы