Указатели на функции - C (СИ) (72547)
Формулировка задачи:
Доброго времени суток.
У меня есть 3 функции.
В функции f_init(int flag), которая вызывается в main(), необходимо настроить указатель, так чтобы, в зависимости значения flag, вызывалась или f1 или f2. Не могли подсказать как это реализовать?
Я написал следующее:
Но после того, как я пытаюсь присвоить
или
Компилятор ругается на меня:
Листинг программы
- f1(char p)
- {
- ...;
- }
- f2(int ser_write(char p)
- {
- ...;
- }
- f_init(int flag)
- {
- ...;
- }
Листинг программы
- 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;
Объяснение кода листинга программы
- Создается тип данных
указатель на функцию
, которая принимает один аргумент типа char и не возвращает ничего. - Переменной
function
присваивается значение указателя на функцию. - Возможно, функция будет вызвана в дальнейшем для обработки переданного ей символа.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д