2010-09-28 6 views
0

Le code suivant (un prototype de fonction):pointeurs de fonction en C

void parse_ini(FSFILE *fp, void(*secFunc)(char*), void(*varFunc)(char*, char*)); 

presents erreurs lors de la compilation:

util\setup.c:38: error: syntax error before '*' token 
util\setup.c:38: error: 'parse_ini' declared as function returning a function 
util\setup.c:38: error: syntax error before 'void' 
util\setup.c:50: error: syntax error before '*' token 

Ce qui est la cause? Utilisation de MPLAB C30, qui est une version de GCC v3.23 pour les microcontrôleurs PIC24F/dsPIC 16 bits.

+0

Vos erreurs sont des lignes 38 et 50, mais vous montrer une seule ligne de code. – abelenky

Répondre

7

Je suppose que vous n'avez pas inclus un en-tête qui déclare/définit FSFILE.

+0

Merci c'était la bonne réponse et le code compile maintenant. :) –

2

essayer cette

typedef void (*varfuncptr)(char *, char*); 
typedef void (*secfuncptr)(char *); 

void parse_ini(FSFILE *fp, secfuncptr *secFunc, varfuncptr *varFunc); 
+0

N'avez-vous pas un jeu supplémentaire de * là-bas? – aib

+0

Il s'agit d'une solution de contournement plutôt que d'une solution, et comme l'a dit AIB, vous l'avez foiré. –

+0

Et cela ne fonctionne toujours pas car le bogue oublie de définir 'FSFILE'. –