01: // puntatore ad una funzione: definizione, inizializzazione e uso
02: #include<stdio.h>
03: #include<stdlib.h>
04: 
05: void helloworld(void)
06: {
07:   printf("Hello world!\n");
08: }
09: 
10: int main(int argc, char **argv){
11: 
12:   helloworld();
13: 
14:   printf("La funzione helloworld() si trova all'indirizzo di memoria %p\n", helloworld);
15: 
16:   void (*pf)(void);   // DEFINIZIONE PUNTATORE A FUNZIONE: puntatore di nome pf ad una funzione che restituisce un void e non prende argomenti in ingresso
17: 
18:   pf = helloworld;    // INIZIALIZZAZIONE PUNTATORE A FUNZIONE:  metto in pf l'indirizzo della funzione
19: 
20:   // stampo pf per semplice verifica che contenga l'indirizzo corretto
21:   printf("Il puntatore a funzione pf contiene l'indirizzo di memoria %p\n", pf);
22: 
23:   pf();              // USO: invoco la funzione puntata tramite il puntatore
24: 
25:   return 0;
26: }
27: 
28: /* NOTE
29:    questo e' solo un esempio di sintassi. 
30:    Quello che va capito (oltre alla sintassi) e' che una volta
31:    che ho un puntatore ad una determinata funzione e' che posso usarlo per
32:    invocare quella funzione.
33:    Di fatto l'uso principale dei puntatori a funzione e' esattamente quello di usarli
34:    per generalizzare il codice ad esempio per le cosiddette "callback"
35:    ovvero poter passare ad una funzione non solo dati ma un "blocco" di codice
36:    */
37: 


Se avete commenti o osservaƶioni su questa pagina
mandate un messaggio di posta elettronica a bertoƶƶi@ce.unipr.it