INTRODUZIONE ALLA PROGRAMMAZIONE IN C
Prototipi di funzioni
Prima di usare una funzione, il C deve riconoscere il tipo di ritorno e il
tipo dei parametri che la funzione si aspetta.
Lo standard ANSI del C ha introdotto un nuovo e migliore metodo per fare
questa dichiarazione rispetto alle precedenti versioni di C (ricordiamo
che tutte le nuove versioni del C aderiscono ora allo standard ANSI).
L'importanza della dichiarazione e' doppia:
- viene fatta per avere un codice sorgente piu' strutturato e percio'
facile da leggere ed interpretare;
- permette al compilatore C di controllare la sintassi delle chiamate di
funzioni.
Il modo in cui questo viene fatto dipende dallo scopo della funzione.
Fondamentalmente, se una funzione e' stata definita prima di essere usata
(call) allora e' possibile semplicemente usare la funzione. Nel caso
contrario, e' obbligatorio dichiarare la funzione; la dichiarazione
stabilisce in modo semplice il ritorno della funzione ed il tipo dei
parametri utilizzati da questa.
E' buona norma (e solitamente viene fatto) dichiarare tutte le funzioni
all'inizio del programma, sebbene non sia strettamente necessario.
Per dichiarare un prototipo di funzione bisogna semplicemente stabilire il
ritorno della funzione, il nome della funzione e tra le parentesi elencare
il tipo dei parametri nell'ordine in cui compaiono nella definizione di
funzione.
Ad esempio:
int strlen(char[]);
Questo dichiara che una funzione di nome "strlen" ritorna un valore integer
ed accetta una singola stringa come parametro.
Nota: le funzioni e le variabili possono essere dichiarate sulla stessa
linea di codice sorgente. Questa procedura era molto piu' diffusa
nei giorni del pre-ANSI C; da allora le funzioni solitamente vengono
dichiarate separatamente all'inizio del programma. La prima procedura
risulta ancora perfettamente valida, purche' venga rispettato l'ordine
in cui gli oggetti compaiono nella definizione della funzione.
Ad esempio:
int length, strlen(char[]);
dove "length" e' una variabile, e "strlen" e' la funzione (come
nell'esempio precedente).