]> git.piffa.net Git - sketchbook_andrea/blob - programming/structured_data_types/struct_risposta_pointers/struct_risposta_pointers.ino
Structured data types
[sketchbook_andrea] / programming / structured_data_types / struct_risposta_pointers / struct_risposta_pointers.ino
1 /*
2     struct 
3
4  Struct e' un tipo struttura di dati non omogenea,
5  puo' contenere tipi di dati diversi a differenza di un array.
6
7  Possiamo quindi raggruppare diverse proprieta' di un oggetto
8  sotto lo stesso identificatore.
9
10 Questa versione permette alla funzione lempeggia() di modificare una delle proprieta
11 (  lo stato) dello struct rosso. Il fatto e' che una funzione non potrebbe modificare
12 dei dati al suo esterno! Al massimo potrebbe ritornare un valore...
13
14 Per superare questo si invoca la funziona con un riferimento ( & ) al dato originale
15 e poi nel corpo della funzione si usano pointers (foo->bar eqivale a (*foo).bar, 
16 l'operatore punto ha precedenza rispetto al pointer) per modificare un indirizzo di memoria
17 esterno alla funzione.
18
19  Schema: http://lab.piffa.net/schemi/rgb.jpg
20  */
21
22
23 #include "lamp.h"
24
25 // instanziamo un lampeggino
26 lampeggino rosso { 13, 1000, ">> Led Rosso <<"};
27
28 void setup()
29 {
30     pinMode(rosso.pin, OUTPUT);
31     Serial.begin(9600);
32 }
33
34 void loop()
35 {
36     // Utilizziamo un lampeggiatore
37    lampeggia(&rosso);
38 }