In questa breve guida ti spiegherò cosa sono i parametri, in particolar modo applicate alla programmazione del micro controllore Arduino.
Parametri
Vediamo ora i parametri e per farlo ci lanceremo immediatamente con uno sketch d’esempio, le basi ormai dovremmo averle.
Immaginiamo lo sketch precedente che però non sommi ogni volta 1 alla nostra variabile ma che ci lasci la libertà di scegliere di quanto vada ogni volta incrementato.
//Parametri 9minuti.it int numero = 0; void aggiungiUno(int incremento){ numero = numero + incremento; Serial.println(numero); } void setup() { Serial.begin(9600); } void loop() { aggiungiUno(4); delay(1000); }
Lo sketch incrementerà ad ogni giro del loop() la variabile numero di 4.
5 – A differenza di prima ora abbiamo un parametro.
Il parametro è a tutti gli effetti una variabile e quindi avrà un tipo e un nome.
7 – Questa riga si può anche scrivere, in forma abbreviata, come
numero += incremento;
21 – Chiamata della funzione e passaggio del parametro 4, avremmo potuto ovviamente scrivere qualsiasi altro numero.
Vediamo uno sketch dove invece che un numero mettiamo come parametro una variabile.
//Parametri 9minuti.it int numero = 0; int incr = 10; void aggiungiUno(int incremento){ numero = numero + incremento; Serial.println(numero); } void setup() { Serial.begin(9600); } void loop() { aggiungiUno(incr); delay(1000); }
La variabile intera incr sarà il parametro che utilizzeremo per la nostra procedura, e di conseguenza avremo un incremento di 10.
Ora vorrei sottoporvi l’ultima ed importantissima cosa a proposito dei parametri. Le variabili dichiarate all’interno di una procedura, di una funzione o di un metodo, sono visibili solo dalla stessa. Cosa succederebbe quindi se noi dichiarassimo una variabile con lo stesso nome più volte ma in procedure diverse? Assolutamente niente, ed è anzi una pratica consentita e molto diffusa.
Prendiamo come esempio il medesimo sketch di sopra ma con il nome di una variabile modificata.
//Parametri 9minuti.it int numero = 0; int incremento = 10; void aggiungiUno(int incremento){ numero = numero + incremento; Serial.println(numero); } void setup() { Serial.begin(9600); } void loop() { aggiungiUno(incremento); delay(1000); }
Come potete vedere esistono due variabili di tipo intere chiamate incremento, una dichiarata ad inizio programma, e quindi globale, e una dichiarata come parametro della nostra procedura.
Il programma funzionerà perfettamente perché la variabile incremento all’interno della procedura non si rifà a quella globale ma a quella dichiarata come parametro.
Possiamo quindi dire che le variabili dichiarate all’interno di una procedura, funzione o metodo, hanno priorità rispetto alle variabili globali.
in aggiornamento