Funzioni
Il senso migliore sviluppare ed effettuare un grande programma è costruirlo dalle più piccole parti di cui ciascuno sono più facili da controllare (una tecnica a volte citata come si divide e conquista). Le funzioni permettono il programmatore modularize il programma.
Le funzioni permettono che i programmi complicati siano spartiti in su nei piccoli blocchi, di cui ciascuno è più facile da scrivere, leggono ed effettuano. Già abbiamo incontrato il printf principale ed usato di funzione dalla biblioteca standard. Possiamo naturalmente fare le nostre proprie funzioni e lime di intestazione. Una funzione ha la seguente disposizione:
return-type function-name ( argument list if necessary )
{
local-declarations;
statements ;
return return-value;
}
Se il rinvi-tipo è omesso, la C stabilizza ad interno. Il rinvi-valore deve essere del tipo dichiarato. Tutte le variabili dichiarate all'interno delle funzioni sono denominate variabili locali, in quanto sono conosciute soltanto nella funzione a cui sono state definite.
Alcune funzioni hanno una lista di parametro che fornisce un metodo di comunicazione fra la funzione ed il modulo che ha denominato la funzione. I parametri sono inoltre variabili locali, in quanto non sono parte esterna disponibile della funzione. I programmi hanno coperto finora tutti hanno conduttura, che è una funzione.
Una funzione può effettuare semplicemente un'operazione senza restituire alcun valore, nel qual caso ha la seguente disposizione:
void function-name ( argument list if necessary )
{
local-declarations ;
statements;
}
Le discussioni sono passate sempre da valore nelle chiamate di funzione di C. Ciò significa che le copie locali dei valori delle discussioni sono passate alle procedure. Tutto il cambiamento fatto alle discussioni internamente nella funzione è fatto soltanto alle copie locali delle discussioni.
Per cambiare o definire una discussione nella lista di discussione, questa discussione deve essere passata come indirizzo. Usate le variabili normali se la funzione non cambia i valori di quelle discussioni. DOVETE usare gli indicatori se la funzione cambia i valori di quelle discussioni.
Impariamo con gli esempi:
#include <stdio.h>
void exchange ( int *a, int *b )
{
int temp;
temp = *a;
*a = *b;
*b = temp;
printf(" From function exchange: ");
printf("a = %d, b = %d\n", *a, *b);
}
void main()
{
int a, b;
a = 5;
b = 7;
printf("From main: a = %d, b = %d\n", a, b);
exchange(&a, &b);
printf("Back in main: ");
printf("a = %d, b = %d\n", a, b);
}
E l'uscita di questo programma sarà visualizzata come segue:
From main: a = 5, b = 7
From function exchange: a = 7, b = 5
Back in main: a = 7, b = 5 |
|