Buonasera a tutti,
Innanzi tutto credo sia d'obbligo scusarmi dato che è il terzo post che apro su cose banali.. ma neanche a farlo apposta ogni capitolo di manuale che leggo mi lascia dubbi più che chiarimenti ed anche se a livello teorico capisco ciò leggo, a livello pratico è letteralmente un macello e non riesco a replicare nulla di ciò che """apprendo""".
Ho compreso cos'è una funzione callback ed in certi contesti riesco pure ad utilizzarla:
/*includo le librerie*/
#include <stdio.h>
#include <math.h>
/*prototipo funzione somma*/
int somma();
/*prototipo funzione quadrato*/
int quadrato(int(*p)());
/*inzio del main. qui richiamo la funzione quadrato che punta a somma*/
int main() {
printf("ecco il quadrato:%d\n",quadrato(somma));
}
/*dichiarazione della funzione somma*/
int somma() {
int a=2;
int b = 2;
int c;
c= a+b;
return c;
}
/*dichiarazione della funzione quadrato*/
int quadrato(int (*p)()) {
int d;
d=(*p)();
int d1;
d1 = d*2;
return d1;
}
senza passare parametri alla funzione somma dal main tutto funziona a meraviglia. I problemi sorgono quando
passo i parametri necessari alla somma tramite il main:
#include <stdio.h>
int somma(int a, int b);
int quadrato( int(*p)(int a, int b));
int main(){
int a=2, b=2;
printf("il risultato e': %d\n",quadrato(somma(int a, int b)) );
return 0;
}
int somma(int a, int b){
return a+b;
}
int quadrato(int (*p)(int a, int b)){
return (*p)(a,b) *2;
}
potete spiegarmi dove sbaglio?
grazie.
Saluti.