Un problema (no lo digo con malicia) es tu manejo del español, si tratas de comunicar algún punto fino (por ejemplo ironía) me temo que nos pones en dificultades (de por si ya es difícil comunicarse mediante texto).
Si bien el lenguaje C existe desde hace años este se estandarizo y, al menos técnicamente, se actualizo en 1989 y 1999. Por supuesto tiene, como cualquier otro lenguaje, sus "verrugas".
En cuanto a esto:
void (*(*handler[])())(int *, double) = {};
No es valido ya que se trata de un array sin indicar su numero de elementos inicializado con (aquí el detalle) una lista vacía.
Edito:Si queremos complicarlo en serio se puede pero también podemos tratar de hacerlo mas legible utilizando un par de alias para los punteros a funcion:
typedef void (*pf)(int *, double);
typedef pf (*pg)(void);
pg handler[10];
Un saludo
rir3760, si si, pero tengo atentar hablar, o no aprendo. Por esto escribo poco y en pequeñas frases. Pero, gracias por los comentarios.
No lo entendo, si no indicas el numero de elementos, este es deducido de la inicialización. Creo que eso es un "zero-length array hack" o tambien el "struct hack".
(The point is, C is a nice language but it is also old, so we are forced to accept some language details for backward compatibility, like array to pointer conversion. Languages like Java also have some of these, but in a small scale, too young.)
#Edito:
AT&TSysVr4
#include <signal.h>
void (*signal(int sig, void (*disp)(int)))(int);
Tenemos que comprender esto.