[C]Le funzioni e i prototipi di funzione

Andare in basso

[C]Le funzioni e i prototipi di funzione

Messaggio  Admin il Gio Lug 28, 2011 10:46 am

La funzione main è quella principale, però per migliorare la scalabilità e il riutilizzo del codice, si può suddividere il programma in piccole parti di codice dette: "funzioni".

Un consiglio è quello di non creare delle funzioni che eseguano molti compiti, è meglio dare un compito ad essa e come nome proprio quello che deve eseguire.

La dichiarazione delle funzione ha una sintassi uguale ha quella del main.

Secondo lo standard ansi è buona norma che ogni funzione abbia un suo prototipo, cioè, se io voglio creare un prototipo di funzione della funzione di tipo int e con il nome: "esempio" con gli argomenti int var1 e int var2, sarà:

int esempio (int var1, int var2);

Questo dice al compilatore che esempio si deve aspettare un valore di tipo int e degli argomenti precisi.

Esso può essere dichiarato rispettando le regole di visibilità, cioè: se io dichiaro una variabile al di fuori di ogni funzione questa sarà visibile e modificabile da tutti, invece se la dichiarazione avviene all'interno del main per esempio, le altre non potranno accedervi.

Quindi se io scrivo:

#include<stdio.h>

int esempio (int var1, int var2);

int main (void) {

return 0;
}

Esempio è visibile da tutti.

#include<stdio.h>

int main (void) {
int esempio (int var1, int var2);

return 0;
}

Esempio è visibile solo da main.

Le funzioni sono utilissime e una volta che si inizia a usarle non ci si complica più la vita.

Per usarle bisogna dichiararle (sintassi uguale al main), con tipo, nome, argomenti, uguali a quelli della funzione main, quindi:

int esempio (int var1, int var2) {
corpo della funzione

valore di ritorno
}

La funzione return ridà il controllo alla funzione chiamante

Una funzione può essere chiamata: per riferimento o per valore, quasi sempre restituendo un valore specifico (ci sono delle eccezioni, ne faccio un post a parte).

Per riferimento: ne faccio un post a parte.

Per valore: la funzione chiamante passo le sue variabili (o argomento) nella funzione che deve chiamare, quindi:

#include<stdio.h>

int esempio (int var1, int var2);

int main (void) {

int risultato;
int numero1;
int numero2;

printf ("Primo numero: \n");
scanf ("%d", &numero1);

printf ("Secondo: \n");
scanf("%d", &numero2);


risultato = esempio (numero1, numero2);

return 0;
}

int esempio (int var1, int var2) {
return var1 * ver2;
}

La funzione esempio moltiplicherà due numeri, come si può vedere dal valore di ritorno.

La chiamerà per valore, perché come si vede passa i suoi argomenti alla funzione chiamante.

Faccio un esempio in un altro post.

Un saluto!

avatar
Admin
Admin
Admin

Messaggi : 148
Punti : 15427
Reputazione : 0
Data d'iscrizione : 24.04.11
Età : 39
Località : Emiglia Romagna

Visualizza il profilo http://c88software.blogspot.com

Torna in alto Andare in basso

Torna in alto

- Argomenti simili

 
Permessi di questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum