Dalla A alla Z passando per C - Robotica
Dalla A alla Z passando per C - Robotica
Dalla A alla Z passando per C - Robotica
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Per un corretto funzionamento del programma la dichiarazione di una funzione deve sempre<br />
precedere l’invocazione della stessa, mentre la definizione può essere presente in un qualunque<br />
punto del sorgente.<br />
Esempio:<br />
void proc1(int arg1, double arg2);<br />
definisce una funzione che non restituisce alcun valore con due argomenti: un intero ed un reale<br />
in doppia precisione.<br />
Altro esempio:<br />
char proc2(void);<br />
definisce una funzione che restituisce un carattere.<br />
9.2 Definizione di funzioni<br />
Una definizione di funzione è costituita da due parti:<br />
1. una dichiarazione, in cui sono elencati:<br />
• il tipo di dato restituito d<strong>alla</strong> funzione<br />
• il nome della funzione<br />
• gli eventuali argomenti<br />
2. il corpo della funzione, racchiuso tra parentesi graffe e comprendente queste parti opzionali:<br />
• dichiarazioni e definizioni<br />
• istruzioni<br />
• una o più istruzioni return<br />
Una funzione come<br />
do_nothing(){ }<br />
è lecita.<br />
9.3 Passaggio dei parametri<br />
Una funzione può utilizzare parametri <strong>per</strong> svolgere il suo lavoro, cioè delle variabili che vengono<br />
passate <strong>alla</strong> funzione al momento della sua invocazione e che contengono valori necessari a controllare<br />
le o<strong>per</strong>azioni svolte d<strong>alla</strong> funzione, oppure sono valori utilizzati nei calcoli svolti d<strong>alla</strong><br />
funzione.<br />
La comunicazione fra il codice chiamante ed il sottoprogramma avviene sempre secondo la<br />
modalità del passaggio <strong>per</strong> valore. Questo significa che la funzione utilizza una copia locale della<br />
variabile passata come parametro all’atto della chiamata, e tale variabile locale è inizializzata<br />
con il valore dell’espressione o della variabile impostata nel punto di chiamata <strong>alla</strong> funzione. In<br />
particolare, la funzione potrà modificare il valore della variabile locale, ma non quello dell’eventuale<br />
variabile passata come parametro all’invocazione della funzione stessa, in quanto le due<br />
variabili sono allocate in aree di memoria distinte.<br />
96