Respuestas
Respuesta:
l lenguaje no posee soporte para programación genérica, esto es, no se puede indicar un algoritmo y luego ajustarlo a un tipo de dato en especifico tal como se hace en otros lenguajes como C++ o Common Lisp.
Lo más cercano que tiene C es el uso del pre-procesador, por vía de su sistema de macros. Sin embargo, un uso excesivo del pre-procesador es considerado hoy como una señal de un mal código, una mala práctica a evitar.
Si de todos modos quieres hacer una función de algún modo genérica, tendrás que escribir primero una macro apropiada, por ejemplo:
#define SUMAR(T) static T sumar_ ## T (T a, T b) { \
return a + b; \
}
Y luego tendrás que instanciarla indicando un tipo de datos en concreto. Ejemplo:
SUMAR(int)
SUMAR(float)
Con lo cual tendrías dos nuevas funciones: sumar_int() y sumar_float() que respectivamente suman dos enteros y dos punto flotante. A estas ultimas funciones las podrás utilizar con normalidad de aquí en adelante.
#include <stdio.h>
int main (void)
{
printf("%d\n", sumar_int(1,3));
return 0;
}
Algo así.
En general es el tipo de ideas que explican la migración a otros lenguajes. Si en verdad tu proyecto se simplifica usando funciones genéricas, entonces utiliza un lenguaje que dé soporte pleno a este estilo de programación.