Variabili Locali e Globali

Obiettivo: Comprendere cosa è una variabile e quali sono le differenze tra variabili locali e globali.



Teoria: Le variabili sono gli strumenti utilizzati in tutti i linguaggi di programmazione per la memorizzazione dei dati. Da un punto di vista pratico, le variabili possono essere considerate come contenitori di dati situati in una determinata area della memoria. Le variabili sono caratterizzate da tre differenti elementi: il tipo di dato, il nome, ed il valore contenuto.

  • Tipo di dato: A seconda del dato che una variabile deve memorizzare il programmatore deve scegliere il corretto tipo di riferimento. Nella seguente tabella vengono riportati i principali tipi di dati utilizzati in Arduino

Tipo di Dato Dimensione   Descrizione
char 1 Byte Contenitore per caratteri e valori alfanumerici (e.g., ‘a’, ‘b’, ‘1’, etc)
bool 1 Byte Contenitore per valori booleani (e.g., true, false)
int 2 Byte Contenitore per numeri interi nel range numerico, da -32768 a 32767.
unsigned int 2 Byte Contenitore per numeri interi senza segno nel range numerico, da 0 a 65535.
long 4 Byte Contenitore per numeri interi nel range numerico, da -2147483648 a 2147483647
unsigned long 4 Byte Contenitore per numeri interi nel range numerico, da 0 to 4,294,967,295 (2^32 – 1)
float 4 Byte Contenitore per numeri con la virgola nel range numerico da 3.4028235E+38 a -3.4028235E+38
double 4 Byte Contenitore per numeri con la virgola nel range numerico da 3.4028235E+38 a -3.4028235E+38
String Contenitore per testo (e.g., “Resistenza”)

  • Identificativo (Nome della variabile): La variabile è caratterizzata da un nome attraverso il quale si fa riferimento al contenitore stesso dei dati. E’ importante considerare che il nome della variabile non deve iniziare con un numero e soprattutto non può essere uguale ad una keyword del linguaggio di programmazione. Ad esempio il nome di una variabile non può essere loop.

  • Valore: Le variabili sono utilizzate per contenere dei dati pertanto ad ogni variabile è associato un valore (nel caso in cui l’utente non assegni nessun valore molto probabilmente è il compilatore che assegna un valore di default).

Prima di potere essere utilizzate all’interno del codice le variabili devono essere dichiarate e se possibile inizializzate con un valore specifico. La sintassi utilizzata per la dichiarazione di una variabile è la seguente.

int lato = 10;
float peso = 43.5;
bool condizione = true;
char lettera = ‘A’;
String nome = “Andrea”

Le variabili possono essere definite sia all’interno dei blocchi loop e setup sia al loro esterno. In base a dove vengono definite, queste prendono il nome di variabili globali o locali.

  • Variabili Globali: Sono variabili che hanno visibilità in tutto il programma. Le variabili globali sono definite fuori dal corpo (fuori dalle parentesi graffe) delle funzioni loop e setup.

  • Variabili Locali: Sono variabili che hanno visibilità solo all’interno di una funzione. Le variabili locali sono definite dentro il corpo (dentro le parentesi graffe) delle funzioni loop e setup.

Codice: Viene in seguito riportato l’esempio di un codice per la gestione di un un pulsate dove sono utilizzate sia variabili locali che variabili globali.