2012-02-20 11 views

Odpowiedz

0

Możesz spróbować umieścić to w nawiasach: glesContext * glesContext.

0

Nie jestem pewien, co Twój kod próbuje zrobić, ale jeśli po prostu chcesz, aby skompilować, spróbuj

void glesRegisterDrawFunction(glesContext *glesContext, void (*drawFunc)(glesContext*)); 
5

Masz prawidłowy sposób dokonywania wskaźnik funkcji w struct (więc za to, że tak wielu ludzi się myli).

Wymieniasz jednak drawFunc i * w definicji funkcji, co jest jednym z powodów kompilacji. Innym powodem jest to, że masz ten sam identyfikator, który jest używany jako typ i zmienna. Powinieneś wybrać różne identyfikatory dla dwóch różnych rzeczy.

Użyj tego zamiast:

void glesRegisterDrawFunction(glesContext *cntxt, void(*drawFunc)(glesContext*)); 
                 ^^^^^^^^^ 
                 note here 
5

Jednym z rozwiązań jest dodanie wskaźnika funkcjonować typedef następująco: Wskaźniki funkcyjne

typedef struct { 
    void (*drawFunc) (void*); 
} glesContext; 

// define a pointer to function typedef 
typedef void (*DRAW_FUNC)(glesContext*); 

// now use this typedef to create the function declaration 
void glesRegisterDrawFunction(glesContext *glesContext, DRAW_FUNC func); 
+4

Typedeffing może sprawić, że łatwiej sobie poradzić. – dreamlax

Powiązane problemy