2. Struttura e definizione di una funzione
Le funzioni servono a racchiudere un pezzo di funzionalità del programma,
per poterle richiamare da altri punti del programma quando ne abbiamo
bisogno.
Le funzioni hanno la seguente struttura:
tipo nomefunz(argomenti)
{ istruzioni
}
Il tipo ci dice il valore di ritono della funzione, se non ha valori di ritorno scrivo
«void», se ci sono argomenti passati dal programma chiamante gli scriviamo col
loro tipo nello spazio segnato, se no lasciamo le parentesi vuote.
3. Dichiarazione
La dichiarazione di una funzione o prototipo viene fatta nel main, e consiste
in un’unica istruzione identica alla prima riga della sua definizione, ad
esempio:
int FunzioneProva( int a, int b)
Nella dichiarazione della funzione i nomi degli argomenti non devono per forza
coindere con quelli della definizione, es:
int FunzioneProva(int x, int y)
L’istruzione «return nome;» è un’istruzione di ritorno al programma chiamante;
se la funzione non ha un valore di ritorno si scrive solo «return».
4. Tipi di passaggio
Passaggio per valore: quando il main esegue la chiamata di una funzione, il
programma costruisce la copia di ogni argomento e crea delle variabili locali
nella funzione, se modifichiamo questi valori, le modifiche averrano solo nella
funzione, il main mantiene il suo valore originale.
Passaggio per riferimento: permette alla funzione di cambiare il valore
contenuto nel main, perche passando «&a», quello che in realta passiamo è
l’indirizzo di memoria di a e quindi possono andare a modificare all’interno
della cella.
5. Differenza tra: prototipo, chiamata e
definizione
Il prototipo di una funzione è un operazione obbligatoria perchè è definita
dall’ANSI(American National Standards Institute), risiede in un file di
intestazione, serve per tenere le funzioni più ordinate, viene scritto prima del
main, es:
int potenza(int, int)
La chiamata di funzione è quella che si scrive all’interno del main e, infatti,
richiama la funzione, es:
potenza(x,y)
La definizione è il nome della nostra funzione, che richiameremo in
qualunque parte del programma, es:
int potenza(int base, int n)