Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/04/2013, 17:07
Amphoth3ra
 
Fecha de Ingreso: mayo-2011
Mensajes: 26
Antigüedad: 13 años
Puntos: 1
[C] Definición de typedef en una cabecera y funciones sin parámetros

Necesito un poco de atención para que vean esto, porque probablemente el título sea un poco confuso, pero es el más breve que se me ocurrió para poder describir la situación que tengo en estos instantes.

Un poco de contexto: Yo tengo una cabecera llamada evento.h, donde tengo la estructura que estoy usando en mi programa, la definición de todas las funciones que voy a hacer en un programa que estoy desarrollando, además de una definición de las funciones base que voy a usar en mi programa, que consiste en una función void que recibe un puntero a la estructura definida, en este caso, de evento.
Código C:
Ver original
  1. /*  evento.h (extracto)*/
  2.  
  3. /* Estructura */
  4. typedef struct _evento {
  5.   int id;
  6.   char titl[60];
  7.   char desc[120];
  8.   int estado;
  9. } evento;
  10.  
  11. /* Definicion de las funciones base */
  12. typedef void (*ptr_funcion)(evento *);

Luego, un programa llamado evento.c donde tengo los cuerpos de todas las funciones que voy a usar. Y finalmente el programa principal, main.c

Dentro del header, tengo una serie de funciones que justamente usan como parámetro un puntero a la estructura evento, justamente el formato que necesito para poder usar el typedef.
Código C:
Ver original
  1. /* evento.h (extracto)*/
  2.  
  3. void mostrar_evento(evento *);
  4.  
  5. void eliminar_evento(evento *);

Pero tengo un par de funciones void que no reciben parámetro, incompatibles con el typedef declarado en la cabecera.

Código C:
Ver original
  1. /* evento.h (extracto)*/
  2.  
  3. void listar_eventos();
  4.  
  5. void vaciar_eventos();

Podría declararlas directamente en el main.c, pero al tener la declaración typedef definida, lo ideal sería que pueda usar punteros para poder realizar la llamada a estas funciones.

Con todo lo anterior, ¿alguna sugerencia para hacer las llamadas a estas funciones (que no sea de forma directa, sino que de cierto modo respetando el typedef definido en la cabecera)?

Última edición por Amphoth3ra; 10/04/2013 a las 17:21