Указатели на функции - 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присваивается значение указателя на функцию. - Возможно, функция будет вызвана в дальнейшем для обработки переданного ей символа.