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
mandate un messaggio di posta elettronica a bertoƶƶi@ce.unipr.it