Introduccion de datos variables en funcion

Buenas, esta pregunta es solo por curiosidad, no estoy haciendo nada en concreto para lo que necesite esto.

El tema es que cuando declaras una funcion y le pasas datos, defines el tipo de datos que vas a recibir, por ejemplo "void funcion(int numero)" vas a recibir un numero. Sin embargo, cuando haces un "Serial.print(variable)" para enviar un dato al serial, esa funcion te admite "cualquier" tipo de datos. Me intriga (mucho) y me gustaria saber porque, como se hace para recibir cualquier tipo de datos en una funcion? como se gestiona luego?

Gracias a todos los que se tomen el tiempo de leer esta pregunta y un saludo.

Polimorfismo.

Puedes crear una funcion llamada A. Y creas distintos cuerpos con distintos parametros. El compilador busca esa función con esos parametros. Ejemplo.


// La funcion A toma dos enteros los suma y devuelve el valor.
int A(int a, int b) {
  return a+b;
}

// La funcion A imprime una cadena por el puerto serie.
void A(char *s){
 Serial.println(s);
}

void setup() {
  Serial.begin(9600);
}
void loop() {
  A("La suma de dos y tres es:"); // El compilador busca una funcion A que tenga como parametro una cadena.
  Serial.print(A(2,3));           // El compilador busca una funcion A que tenga como parametros dos enteros.

}

@victorjam sabes muy bien que no se llama poliformismo, sino sobrecarga de funciones. :sweat_smile:

Lapsus mental :rofl: :rofl: :rofl: :rofl:

Muchas gracias!!! realmente me has rascado donde me picaba. un saludo

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.