Eso solo tiene sentido si lo usas para abreviar punteros a funciones, con lo que puedes solucionarlo simplemente typedefeando (me lo acabo de inventar) un nuevo tipo de funciones sin eventos
Código:
typedef void (*ptr_funcion_con_evento)(evento *);
typedef void (*ptr_funcion_sin_evento)();
Si de todas formas no quieres tipar dos funciones puedes declarar los prototipos con punteros a un evento, pero dentro de listar_eventos y vaciar_eventos simplemente se omitirá el evento (o sea que puedes enviarle 0 por defecto).
Saludos
vosk