|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Dec 2009
Messaggi: 2
|
[C] passare una funzione come parametro di un altra funzione
ciao ragazzi!
Mi hanno dato da sistemare un progetto in C che prevede una situazione del genere: File experiment.c che chiama il void MyExp nel file MyExp.c Codice:
MyExp.c: #include ... #define ..... double ... int ... void MyExp(double a, double b, double(*ffunction)(double*)) { .... ... double x; ffunction(x); //questa chiamata la vede perfettamente efunction (.....); //all interno di efunction devo chiamare ffunction } void efunction (..........) { .. ffunction(x); //la devo passare come parametro ad efunction } |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
scusa, qual é la difficoltá? il codice é identico a quello di MyExp, che hai giá scritto:
Codice:
void MyExp(double a, double b, double(*ffunction)(double*)) { efunction(ffunction); } void efunction(double (*ffunction)(double*)) { double x; ffunction(&x); } |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Dec 2009
Messaggi: 2
|
per il double * hai ragione scusa dimenticanza mia mentre ricopiavo!
il problema nell altro sopraggiunge quando devo dichiarare il prototipo di efunction, se ci metto dentro double(*ffunction)(double*), mi dice che non può vedere forward (credo che intenda che non trova la dichiarazione di ffunction) |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Metti il prototipo di efunction prima di MyExp
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
Quote:
Codice:
void efunction(double (*ffunction)(double*)) { double x; ffunction(&x); } void MyExp(double a, double b, double(*ffunction)(double*)) { efunction(ffunction); } Codice:
void efunction(double (*ffunction)(double*)); void MyExp(double a, double b, double(*ffunction)(double*)) { efunction(ffunction); } void efunction(double (*ffunction)(double*)) { double x; ffunction(&x); } |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:30.