- Anche per le funzioni esistono delle regole di scoping
- Se si invoca una funzione non dichiarata in C, viene automaticamente creata
una dichiarazione con tipo di ritorno int o del tipo necessario se usata
in un'assegnazione
- In C++, se manca il prototipo di una funzione prima dell'invocazione,
viene generato un errore
- Una funzione può essere dichiarata static, diventando locale al modulo
- Per usare una funzione in un modulo diverso da quello dove è stata definita,
ammesso che essa non sia static,
occorre introdurre nel modulo una dichiarazione o un prototipo della funzione
- Una dichiarazione di funzione ha la seguente sintassi:
<tipo restituito> <nome funzione> ();
- Un prototipo di funzione ha la seguente sintassi:
<tipo restituito> <nome funzione> (void | <tipo parametro>
[<nome parametro>] [,<tipo parametro>
[<nome parametro>]]... );
In c++ void è opzionale, in quanto non posso confondere una dichiarazione con un prototipo
(non esistono le dichiarazioni di funzione ma solo i prototipi)
- La definizione di una funzione ha la seguente sintassi:
<tipo restituito> <nome funzione> ([void] | <tipo parametro>
<nome parametro> [,<tipo parametro>
<nome parametro>]... ) { <corpo funzione> }
|