Используя перегрузку функций, написать программу определения минимального значения элемента массива - C (СИ)
Формулировка задачи:
Добрый день, подскажите, пожалуйста! )
Используя перегрузку функций, написать программу определения минимального значения элемента массива разного типа.
Решение задачи: «Используя перегрузку функций, написать программу определения минимального значения элемента массива»
textual
Листинг программы
#include <stdio.h>
#define test(t) _Generic((t),int: testi, double: testd, char: testc, float: testf)(t)
void testi(int i)
{
printf("TEST INT:\t%d\n", i);
}
void testd(double d)
{
printf("TEST DOUBLE:\t%lf\n", d);
}
void testc(char c)
{
printf("TEST CHAR:\t%c\n", c);
}
void testf(float f)
{
printf("TEST FLOAT:\t%f\n", f);
}
int main(void)
{
test(97);
test(97.);
test((char)'a');
test(97.f);
}
Объяснение кода листинга программы
- Подключение стандартной библиотеки для работы с файлами и вывода данных в консоль.
- Определение макроса test(t), который использует механизм перегрузки функций иGeneric ассоциируя разные типы данных с разными функциями-обработчиками.
- Создание пяти функций-обработчиков для каждого типа данных: int, double, char, float.
- В функции main() происходит вызов функции test() с передачей разных типов данных: целого числа 97, числа с плавающей точкой 97., символа 'a' и числа с плавающей точкой 97.
- Функция test() в зависимости от переданного ей типа данных вызывает соответствующую функцию-обработчик и выводит результат на экран.