aboutsummaryrefslogtreecommitdiffstats
path: root/hof_example.c
diff options
context:
space:
mode:
Diffstat (limited to 'hof_example.c')
-rw-r--r--hof_example.c33
1 files changed, 0 insertions, 33 deletions
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 <stdio.h>
-#include <math.h>
-
-// Синтаксис непонятный, но так я создаю "синоним"
-// к указателю на функцию, принимающую 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);
-}