3. ¿Cómo declaro un array de N punteros a función,
las cuales a su vez devuelven punteros a función, y éstas
a su vez, punteros a caracteres?
Existen
varias maneras:
a)
char *(*(*a[N])())();
Hemos
de reconocer que esta declaración resulta bastante compleja
de entender, con lo cual te recomendamos que utilices el siguiente
formato:
b) Para esta segunda opción, nos basamos en las definiciones
de tipos:
typedef char *puntChar;
/* puntero a caracter */
typedef puntChar funcion1();
/* funcion1 q devuelve un puntero a char */
typedef funcion1
*puntfuncion1; /*
puntero a la función1 */
typedef puntfuncion1
func2puntfunc1(); /* funcion2 q devuelve un puntero
a la funcion1*/
typedef func2puntfunc1
*puntfunc2puntfunc1;
/* puntero a .. */
puntfunc2puntfunc1
a[N];
/* array de N punteros a ... */
Las declaraciones que te hemos dado no incluyen los parámetros.
Cuando los parámetros poseen tipos complicados, las declaraciones
pueden llegar a ser, realmente enrevesadas.