typedef struct {
const char* label;
unsigned int id;
float value;
} CustomData_t;
CustomData_t dati[] = {
{"Valore 1", 1, 156.20},
{"Valore 2", 2, 100.99},
{"Valore 3", 3, 16.92},
{"Valore 4", 4, 1.32}
};
void setup() {
Serial.begin(115200);
for (CustomData_t elem : dati)
{
Serial.print("L'elemento con id ");
Serial.print(elem.id);
Serial.print(" si chiama \"");
Serial.print(elem.label);
Serial.print("\" ed ha il valore di ");
Serial.println(elem.value);
// elem è una copia dell'elemento i di dati
// quindi questa assegnazione non modifica il valore nell'array
elem.value = 0;
}
Serial.println();
for (CustomData_t &elem : dati)
{
Serial.print("L'elemento con id ");
Serial.print(elem.id);
Serial.print(" si chiama \"");
Serial.print(elem.label);
Serial.print("\" ed ha il valore di ");
Serial.println(elem.value);
// elem è una riferimento all'elemento i di dati
// quindi questa assegnazione modifica il valore nell'array
elem.value = 0;
}
Serial.println();
for (int i = 0; i < sizeof dati / sizeof dati[0]; i++)
{
Serial.print("L'elemento con id ");
Serial.print(dati[i].id);
Serial.print(" si chiama \"");
Serial.print(dati[i].label);
Serial.print("\" ed ha il valore di ");
Serial.println(dati[i].value);
}
Serial.println();
}
void loop() {
// put your main code here, to run repeatedly:
}