Lezioni di Informatica
"Una volta che abbiate conosciuto il volo, camminerete sulla terra guardando il cielo" [ L. da Vinci ]
Informazioni sul Sito
N. visitatori  000059263  dal 21/01/2007  |   e-mail: ksoft64camera@gmail.com   
Cerca nel sito
Documenti collegati alla pagina
  Le funzioni in C
Funzioni
Generalità sulle funzioni

Sono i blocchi fondamentali in cui si svolge tutta l'attività del programma. Il formato generale è:

tipo nome_funzione ([eventuali parametri])
{
	istruzione;
	istruzione;
	...
}
Se il tipo non è specificato la funzione restituisce un numero intero.
E' bene comunque specificare sempre il tipo perché molti compilatori lo richiedono.
Gli eventuali parametri non sono altro che variabili dichiarate in sequenza e separate dalla virgola.
La funzione main()
In qualsiasi programma C va sempre inserita una funzione speciale chiamata main() che rappresenta la partenza per l'esecuzione e va tipizzata come int in quanto restituisce, tramite return, un valore (0 o 1) al sistema operativo.
A volte vengono indicati tra parentesi 2 parametri, argc e argv[]; in tal caso significa che il programma richiede uno o più dati che servono per ottenere risultati in base a valori immessi.
il primo parametro indica il numero di argomenti passati al programma (incluso il nome del programma), il secondo contiene tutti gli argomenti sotto forma di stringhe (il nome del programma corrisponde ad argv[0]).
Scriviamo il seguente programma, lo salviamo con il nome prova.c e lo compiliamo per renderlo eseguibile.
#include <stdio.h>
int i;

int main (int argc, char *argv[])
{
	printf ("Numero di parametri passati al programma: %d\n", argc);
	printf ("Valori dei parametri:\n");
	
	for (i=0; i<argc; i++)
		printf ("%d parametro = %s\n", i+1, argv[i]);

	return 0;
}
Se lo mandiamo in esecuzione senza indicare parametri
./prova
avremmo il seguente risultato:
Numero di parametri passati al programma: 1
Valori dei parametri:
1 parametro = ./prova
Infatti sarà visualizzato lo stesso comando con il quale lo abbiamo avviato.

Se lo mandiamo in esecuzione con parametri
./prova Carlo Anna Maria
avremmo il seguente risultato:
Numero di parametri passati al programma: 4
Valori dei parametri:
1 parametro = ./prova
2 parametro = Carlo
3 parametro = Anna
4 parametro = Maria

L'istruzione return

Inserendo questa istruzione tra quelle di una function si possono ottenere 2 risultati:

  • la terminazione della funzione con ritorno al programma
  • restituzione di un valore al programma chiamante
Non è obbligatorio inserirla; in questo caso la funzione restituisce comunque qualcosa (il valore zero).
L'unico caso in cui la funzione non restituisce nulla è quando il tipo della funzione viene dichiarato come void.
Ecco un esempio:
#include <stdio.h>
float mol (int a, int b);

int main()
{
	int x, y;
	float z;
	x=10; y=20;
	z=mol (x,y); /* 1 */
	printf("%f\n", mol(x,y));  /* 2 */
	mol(x,y);  /* 3 */
	return 0;
}

float mol (int a, int b)
{	
	return a*b;
}
L'istruzione commentata come /* 1 */ assegna il risultato della funzione mol (a,b) alla variabile z.
Nell'istruzione commentata come /* 2 */ la funzione printf() utilizza il risultato della funzione mol (a,b) per visualizzarlo, senza assegnarlo ad alcuna variabile.
Nell'istruzione commentata come /* 3 */ il valore restituito dalla funzione mol (a,b) viene perso.