Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Le Funzioni
Le funzioni permettono di isolare un certo numero di istruzioni e di riutilizzarle in varie parti del codice.
Es.
di funzioni: main, printf, scanf, ecc... int main(void) { printf(Hello world!\n); return 0; }
Il nome main riservato in C e indica da dove iniziare lesecuzione del programma. Ogni programma C deve avere una funzione main, che pu contenere linvocazione di altre funzioni.
Le Funzioni: !ichiarazione
Chi la pu chiamare. Il tipo del valore che restituisce. Il nome della funzione. Il tipo di ogni argomento che riceve. "on necessario speci#care il nome degli argomenti $presente solo nella de#nizione%
La dichiarazione di una funzione deve sempre precedere il primo utilizzo della funzione.
int sum(int, int);
3
Le Funzioni: !e#nizione
Chi la pu chiamare. Il tipo del valore che restituisce. Il nome della funzione. Il nome e il tipo di ogni argomento che riceve.
Il
Il nome di ciascun argomento detto nome del parametro formale e pu essere utilizzato per far riferimento allargomento allinterno del corpo della funzione.
int sum(int a, int b) { return a + ; }
la funzione non ha valore di ritorno $se posto allinizio della dichiarazione%, oppure la funzione non ha argomenti $se posto tra le parentesi tonde%.
5
Le Funzioni: Esempio
!include "stdio#$% void print&essa'e(void) { printf(Hello world!\n); } int main(void) { int i; for (i ( 0; i" ); i++) printMessage(); return 0; }
int main(void) { int n; ### /rintf (-i e0 il valore assoluto di -i, abs(n), n); } int abs(int *) { if (* " 0) * ( +*; return *; }
!e#nizione
Funzioni: istruzione
return
Ogni volta che viene eseguita listruzione return, il controllo restituito alla funzione chiamante.
0utte
Listruzione return pu essere usata anche in una funzione che non restituisce un valore.
Forma
10
Le varia)ili de#nite allinterno di una funzione sono dette variabili locali automatiche.
(utomatiche
perch2 sono create automaticamente ad ogni invocazione della funzione. Locali perch2 il loro valore locale alla funzione, cio visi)ile ed utilizza)ile solo allinterno della funzione nella ,uale la varia)ile stata de#nita. int sum(int a, int ) { int s; s ( a + ; s una varia)ile locale alla funzione sum return s; }
11
Le modi#che apportate ad * allinterno della funzione a s non hanno alcun e'etto sui valori delle varia)ili a, e c. 3uando una di ,ueste varia)ili passata alla funzione a s, il suo valore automaticamente copiato nella varia)ile *, che locale alla funzione a s#
int main(void) { int a ( ), ( +1, c ( 0; /rintf(-i e0 il valore assoluto di -i, a s(a), a); /rintf(-i e0 il valore assoluto di -i, a s( ), ); /rintf(-i e0 il valore assoluto di -i, a s(c), c); return 0; }
12