Можно ли передать функцию как аргумент другой функции? - 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.

  1. Функция sum принимает два целых числа в качестве аргументов и возвращает их сумму.
  2. Функция mul также принимает два целых числа в качестве аргументов, но возвращает их произведение.
  3. Функция func не возвращает ничего. Она принимает три аргумента: функцию (представленную в виде указателя на функцию), и два целых числа. Внутри функции происходит вызов переданной функции с двумя аргументами, а затем результат выводится на экран. В функции main вызывается функция func дважды. В первом вызове передается функция sum и два аргумента 1 и 2. Во втором вызове передается функция mul и те же два аргумента.

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


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

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

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