Una funzione è un aggeggio che lavora un o più dati in ingresso per fornirne uno in uscita.
Tutto ciò che viene svolto da una funzione può essere fatto senza, a scapito della chiarezza del codice.
Le funzioni si dividono principalmente in due gruppi: quelle fatte da te e quelle fatte da altri.
Tra quelle fatte da altri ce ne sono di importantissime (anzi fondamentali), senza le quali la soluzione di compiti anche semplicissimi sarebbe impossibile.
Tipicamente, una funzione riceve dei dati in ingresso e ne fornisce un in uscita, come per esempio:
valoreDiRitorno funzione (tipoDato1,tipoDato2,...)
int isalnum (char)
questa funzione chiede un carattere e restituisce un intero.
Esistono delle funzioni che non ricevono o non restituiscono dati e sono dichiarate in questo modo:
void stampaBenvenuto ()
Una volta chiamata dal tuo programma, una funzione di questo tipo esegue le istruzioni che le sono assegnate risparmiandoti qualche linea di codice e rendendo più chiaro il ruolo di quelle linee di codice.
Le funzioni che restituiscono un valore possono essere trattate come una costante del tipo che restituiscono, per cui puoi assegnarle ad una variabile dello stesso tipo; mi spiego meglio
int dimmiSeSonoUnaCifra (char ); //dichiaro una funzione
int sonoUnaCifra; //dichiaro un intero
sonoUnaCifra= dimmiSeSonoUnaCifra ('a'); /* assegno il ritorno della funzione alla variabile */
Le funzioni devono essere dichiarate prima di poter essere usate.
Se una funzione appartiene ad una libreria includo la libreria apposita:
#include <libreria.h>
ad esempio, se voglio usare la funzione getchar(), devo includere la libreria stdio.h in testa al codice.
Le funzioni create dal programmatore devono essere dichiarate prima, in uno di questi due modi:
modo 1: scrivo la funzione prima del main
void stampaBenvenuto () {
printf ("benveuto!\n");
}
int main (){
stampaBenveuto();
exit(0);
}
modo 2: dichiaro il prototipo e scrivo la funzione dopo
int dimmiSeValgoAbbastanza (int );
int main (){
int valore = 9;
int sonoUnaCifra;
sonoUnaCifra= dimmiSeValgoAbbastanza (carattere );
}
int dimmiSeValgoAbbastanza (int valore){
if (valore > 10)
return 1;
else
return 0;
}
Le funzioni utilizzano l'istruzione speciale return per ritornare un valore.
Le funzioni utilizzano al loro interno delle variabili locale, che non hanno nulla a che fare con quelle dichiarate nel main.
Le variabili usate all'interno della funzione muoiono subito dopo la return.
Spero di aver condensato abbastanza i principi alla base delle funzioni.
a presto