elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  funcion en c que pueda ser llamada con parámetros de distintos tipos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: funcion en c que pueda ser llamada con parámetros de distintos tipos  (Leído 6,997 veces)
furciorifa

Desconectado Desconectado

Mensajes: 94


Ver Perfil
Re: funcion en c que pueda ser llamada con parámetros de distintos tipos
« Respuesta #10 en: 15 Marzo 2016, 04:11 am »

Podrias usar punteros genéricos y hacer castings y/o uso de punteros a funciones pero esto no es muy común en C, la sobrecarga de valores.


En línea

mester

Desconectado Desconectado

Mensajes: 219


https://www.youtube.com/watch?v=IlY9C6pzxKc


Ver Perfil WWW
Re: funcion en c que pueda ser llamada con parámetros de distintos tipos
« Respuesta #11 en: 15 Marzo 2016, 20:54 pm »

Hola gente.

Quiero crear una función que tenga parámetros que no restrinjan el tipo de dato que se la pase (ya sea int, char, etc.)

¿Cómo se hace y cómo se llama a este tipo de parámetros que no tiene un tipo en particular?

Por ejemplo:

void Sumar( tipoGenerico x, tipoGnerico y){
      return x+y;
}

Me gustaría que la función Sumar, permita pasarle como parámetro un tipo char, un tipo float o un tipo int.

Busqué en internet pero no pude encontrar nada. :-(
Puedes declarar las variables de la función como void *, por ejemplo:
Código
  1. void mi_funcion(void *s, void *n)
  2. {
  3.  ...
  4. }
  5.  
Y luego la puedes llamar así en caso de que sea el primer valor un char y el segundo un int:
Código
  1. int numero = 20;
  2. char *cadena = malloc(sizeof(char) * 20);
  3. mi_funcion((char *)cadena, (int *)numero);
  4.  


En línea

Justicia es dar a cada uno lo que se merece
class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: funcion en c que pueda ser llamada con parámetros de distintos tipos
« Respuesta #12 en: 15 Marzo 2016, 23:30 pm »

¿Cómo sumaríais después los números? (Es lo que pide el que pregunta XD)
En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
Kaxperday


Desconectado Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
Re: funcion en c que pueda ser llamada con parámetros de distintos tipos
« Respuesta #13 en: 15 Marzo 2016, 23:42 pm »

¿Cómo sumaríais después los números? (Es lo que pide el que pregunta XD)

En este caso recibe 2 punteros void, y los castea a enteros, accede a su contenido, y los suma, luego hace lo inverso pasa de int a *void que en este caso no vale para nada pero esta bien como ejemplo. Si quiere devolver solo la suma en entero, con una linea de return valdría, sin necesidad de "aux".

Código
  1. void* Sumar(void *x, void *y){
  2. int aux;
  3. aux = *(int*)x + *(int*)y;
  4. return (void*)&aux;
  5. }
  6.  
  7. int a = 3;
  8. int b = 4;
  9. printf("%d", *(int*)Sumar(&a, &b));
  10.  

XD.

Pero mira que fino queda en C++:

Código
  1. template<typename T>
  2.  
  3. T add(T a, T b){
  4. return a + b;
  5. }
  6.  
  7. int a = 3;
  8. int b = 4;
  9. std::cout << add(a, b);
  10.  

Un saludo.
« Última modificación: 15 Marzo 2016, 23:52 pm por Kaxperday » En línea

Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: funcion en c que pueda ser llamada con parámetros de distintos tipos
« Respuesta #14 en: 16 Marzo 2016, 00:22 am »

Es lo que digo, en C++ se puede hacer con las platillas, pero en C, en tu código, estás presuponiendo que son enteros, mientras que la pregunta pide una función general para sumar entre diferentes tipos
En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
Kaxperday


Desconectado Desconectado

Mensajes: 702


The man in the Middle


Ver Perfil WWW
Re: funcion en c que pueda ser llamada con parámetros de distintos tipos
« Respuesta #15 en: 16 Marzo 2016, 01:08 am »

Es lo que digo, en C++ se puede hacer con las platillas, pero en C, en tu código, estás presuponiendo que son enteros, mientras que la pregunta pide una función general para sumar entre diferentes tipos

Hombre pero en una función eso no se puede hacer.

Se podría crear una clase que almacene variables genéricas y trabajar con ellas con métodos como suma, resta... por ejemplo una clase numero generica y ponerla métodos.

Pero con una función, si la pasas variables genéricas de argumento, no puedes saber con que variable estas tratando (quizás haya alguna manera), al menos a priori.

Saludos.
En línea

Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.
class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: funcion en c que pueda ser llamada con parámetros de distintos tipos
« Respuesta #16 en: 16 Marzo 2016, 02:14 am »

Nunca he dicho que se pudiera XDD He recordado lo que la pregunta pedía!
En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: funcion en c que pueda ser llamada con parámetros de distintos tipos
« Respuesta #17 en: 16 Marzo 2016, 11:30 am »

La función de Kaxperday solo funcionaría para tipos de datos no reales, ya que estos tienen una representación interna diferente.
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Distintos tipos de sesiones.
Nivel Web
APOKLIPTICO 0 4,384 Último mensaje 15 Julio 2009, 02:11 am
por APOKLIPTICO
Función que retorna dos tipos distintos de datos.
Programación C/C++
samur88 9 7,297 Último mensaje 18 Mayo 2011, 20:52 pm
por samur88
crear arreglo con distintos tipos de datos?
Programación C/C++
.:UND3R:. 5 3,556 Último mensaje 18 Junio 2013, 12:56 pm
por pacoperico
[?][C][C++][WIN32] Utilizar zonas de memoria con distintos tipos
Programación C/C++
cgrs 9 6,975 Último mensaje 28 Mayo 2016, 23:23 pm
por ivancea96
Parametro que acepte distintos tipos de variables.
Programación C/C++
Gojira 3 4,567 Último mensaje 1 Marzo 2018, 20:45 pm
por Gojira
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines