Можно ли передать функцию как аргумент другой функции? - C (СИ)

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

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

mojno li v iazike C peredati functiiu kak argument drugoi functii. sori za angl. bukvi. mersi.

Решение задачи: «Можно ли передать функцию как аргумент другой функции?»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. int sum(int a, int b) {
  4.     return a+b;
  5. }
  6.  
  7. int mul(int a, int b) {
  8.     return a*b;
  9. }
  10.  
  11. void func(int (*f)(int, int), int a, int b) {
  12.     printf("%d\n", f(a, b));
  13. }
  14.  
  15. int main(void) {
  16.     func(sum, 1, 2);
  17.     func(mul, 1, 2);
  18.     return 0;
  19. }

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

В этом коде объявлены три функции: sum, mul и func.

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

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


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

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

6   голосов , оценка 4.5 из 5

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

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

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