Dalla A alla Z passando per C - Robotica
Dalla A alla Z passando per C - Robotica
Dalla A alla Z passando per C - Robotica
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
struct nome {<br />
tipo-campo nome-campo ;<br />
[tipo-campo nome-campo ; ... ]<br />
} ;<br />
Dopo la dichiarazione, “struct nome” è il nome di un nuovo tipo che può essere usato <strong>per</strong> dichiarare<br />
variabili e puntatori. Esempio:<br />
int count;<br />
struct stat stbuf;<br />
struct stat *stptr;<br />
Le strutture si possono inizializzare in tre modi diversi:<br />
1. elencando i campi separati da virgola (sintassi tradizionale);<br />
2. dichiarando i campi con i due-punti (sintassi di gcc fin da prima della standardizzazione);<br />
3. usando l’assegnamento ai campi (sintassi standard C99, supportata anche dal gcc).<br />
La prima forma è da evitarsi in quanto poco leggibile, la seconda è sconsigliata in quanto non<br />
standard. In tutti e tre i casi, ogni campo non esplicitamente inizializzato viene azzerato bit-<strong>per</strong>bit<br />
dal compilatore. In questo esempio le tre strutture sono uguali, con il campo priv inizializzato<br />
a zero:<br />
struct item {<br />
int id;<br />
char *name;<br />
int value;<br />
int priv;<br />
};<br />
struct item i1 = {3, "aldo", 45};<br />
struct item i2 = {id: 3, name: "aldo", value: 45};<br />
struct item i3 = {.id = 3, .name = "aldo", .value = 45};<br />
Un altro esempio di strutture dati è la seguente<br />
struct data {<br />
int giorno;<br />
in mese;<br />
int anno;<br />
} giorno1, giorno2;<br />
struct data giorno3;<br />
Ho definito un nuovo tipo di nome data e contemporaneamente due variabili giorno1 e giorno2.<br />
Poi una nuova variabile dello stesso tipo giorno3.<br />
Per far riferimento ai singoli dati si usa la notazione<br />
.<br />
<strong>per</strong> esempio:<br />
83