Listas de argumentos variables
Hoy es uno de los días en los que llevo una sonrisa en la boca porque por he conseguido averiguar como se hace para mandar a una función una lista de argumentos variables.
Despues de un montón de tiempo intentando solucionar el problema, mi profesor de Metodología de Programación me dió la clave para encontrar toda la información. Yo se que es una inutilidad aprender estas cosas… porque no solucionan ningún problema, pero el simple hecho de saber hacerlas te hace sentir de una manera especial, a lo mejor si no eres programador no lo entiendes, pero piensa que un futbolista que consiga mantener el balón en la punta de su pie sin que se le caiga (cosa que no sirve para nada) siente una gran satisfacción.
La solución a mi problema se encuentra en stdarg.h, y daré un par de pistas: va_list, va_start, va_end… y….
int suma_int(int n_ope, …) {
int resultado = 0;
va_list pa;
va_start(pa, n_ope);
while (n_ope–) {
resultado += va_arg(pa, int);
}
va_end(pa);
return resultado;
}
y… poned en vuestro main cualquiera de estas dos llamadas:
resultado=suma_int(3,4,4,2);
resultado=suma_int(8,4,4,2,5,4,5,2,2);
¿A que es bonito?