Можно ли передать функцию как аргумент другой функции? - C (СИ)
Формулировка задачи:
mojno li v iazike C peredati functiiu kak argument drugoi functii.
sori za angl. bukvi.
mersi.
Решение задачи: «Можно ли передать функцию как аргумент другой функции?»
textual
Листинг программы
#include <stdio.h> int sum(int a, int b) { return a+b; } int mul(int a, int b) { return a*b; } void func(int (*f)(int, int), int a, int b) { printf("%d\n", f(a, b)); } int main(void) { func(sum, 1, 2); func(mul, 1, 2); return 0; }
Объяснение кода листинга программы
В этом коде объявлены три функции: sum, mul и func.
- Функция sum принимает два целых числа в качестве аргументов и возвращает их сумму.
- Функция mul также принимает два целых числа в качестве аргументов, но возвращает их произведение.
- Функция func не возвращает ничего. Она принимает три аргумента: функцию (представленную в виде указателя на функцию), и два целых числа. Внутри функции происходит вызов переданной функции с двумя аргументами, а затем результат выводится на экран. В функции main вызывается функция func дважды. В первом вызове передается функция sum и два аргумента 1 и 2. Во втором вызове передается функция mul и те же два аргумента.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д