2016-02-02 12 views
5

Ich habe eine Reihe von Funktionen wie erklärt:Array von Funktionen in C Handhabung

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

Aber Kompilierung mit Fehlern beendet:

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

Was mit meiner Erklärung falsch ist. Und wie es korrigiert werden kann. Ich möchte ein Array von Funktionen in meinem Programm erstellen. Schlage mir eine Lösung vor.

Antwort

8

Es ist nicht möglich, Array von Funktionen zu deklarieren. Sie können nur Array von Zeigern auf Funktion deklarieren:

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

als Benutzer Zbynek Vyškovský erwähnt, nur Array von Funktionszeigern haben kann.

Allerdings würde ich auch empfehlen, dass Sie typedef verwenden Handhabung von Funktionszeigern zu erleichtern:

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