2016-02-02 17 views
5

ho dichiarato una serie di funzioni come:gamma di funzioni di movimentazione in C

void * (thread_fun[100])(void *); 

Ma, la compilazione è terminata con l'errore:

error: declaration of ‘thread_fun’ as array of functions void * (thread_fun[])(void *);

Cosa c'è di sbagliato con la mia dichiarazione. E come può essere corretto. Voglio creare un array di funzioni nel mio programma. Suggeriscimi una soluzione

risposta

8

Non è possibile dichiarare una serie di funzioni. È possibile dichiarare solo array di puntatori a funzione:

void * (*thread_fun[100])(void *); 
1

Come notato utente Zbynek Vyškovský, si può avere solo array di puntatori a funzione.

Tuttavia, vorrei anche consiglia di utilizzare typedef per rendere la gestione dei puntatori a funzione più facili:

typedef void* (*FunctionPtrType)(void*); // Define type 
FunctionPtrType thread_fun[100];   // Declare the array