From f5e0076a8455eec5b4a515b39202217f8a8b9e71 Mon Sep 17 00:00:00 2001 From: justanothercatgirl Date: Sun, 13 Oct 2024 19:28:57 +0300 Subject: Initial commit --- hof_example.c | 33 --------------------------------- 1 file changed, 33 deletions(-) delete mode 100644 hof_example.c (limited to 'hof_example.c') diff --git a/hof_example.c b/hof_example.c deleted file mode 100644 index d8fee90..0000000 --- a/hof_example.c +++ /dev/null @@ -1,33 +0,0 @@ -// Это пример использования функций высшего порядка -#include -#include - -// Синтаксис непонятный, но так я создаю "синоним" -// к указателю на функцию, принимающую 2 double и возвращающую double -typedef double(*func_t)(double, double); - - -// Эта функция "передаёт" аргументы в функцию и выводит результат -void calculate_and_print(func_t function, double arg1, double arg2) { - printf("F(%lf, %lf) = %lf\n", arg1, arg2, function(arg1, arg2)); -} - -// считает сумму x и y -double sum(double x, double y) { - return x + y; -} - -// считает произведение x и y -double prod(double x, double y) { - return x * y; -} - -int main(void) { - // передаёшь функцию в функцию по имени, - // как самый обычный аргумент - calculate_and_print(sum, 420, 69); - calculate_and_print(prod, 420, 69); - // fmax - функция стандартной библиотеки - // возвращает максимальное из двух чисел - calculate_and_print(fmax, 420, 69); -} -- cgit v1.2.3-70-g09d2