
Ho rilevato che alcune volte alcuni allievi nella chiamata di una funzione inseriscono il tipo restituito dalla funzione davanti alla funzione chiamata, ciò può essere fatto solamente nella dichiarazione del prototipo di funzione.
Il prototipo di una funzione costituisce una dichiarazione della funzione e fornisce al compilatore le informazioni indispensabili per gestire la funzione.
Nella definizione di una funzione, viene indicato anche ciò che deve fare la funzione quando viene invocata, specificato nel corpo della funzione.
Lo sketch che segue non chiama la funzione miSentoFortunato()
9 | void miSentoFortunato(); |
12 | void miSentoFortunato() { |
13 | Serial.println( "Oggi mi sento fortunato :-)" ); |
Attenzione che in fase di compilazione e trasferimento non verrà restituito nessuno errore da parte del compilatore quindi l’individuazione dell’errore in un codice più esteso potrebbe essere di difficile individuazione.
Codice corretto
12 | void miSentoFortunato() { |
13 | Serial.println( "Oggi mi sento fortunato :-)" ); |

Esercizio 1
Perché il codice che segue non restituisce errore?
5 | void miSentoFortunato(); |
Esercizio 2
Perché il codice che segue non restituisce errore?
7 | void miSentoFortunato(); |
Esercizio 3
Perché il codice che segue restituisce errore?
6 | void miSentoFortunato() { |
Per i miei allievi: il primo che risponde correttamente vince una scheda Arduino (non è uno scherzo) 