01: // union: definizione e uso base
02: #include<stdio.h>
03: #include<stdlib.h>
04:
05: // una union occupa tanta memoria quanto il suo campo piu' grande
06: // tutti i campi condividono la stessa area di memoria
07: union dato
08: {
09: int i;
10: float f;
11: char c;
12: };
13:
14: int main(int argc, char **argv){
15:
16: union dato d;
17:
18: printf("sizeof(union dato) = %ld\n", sizeof(d)); // dimensione del campo piu' grande
19:
20: // scrivere un campo sovrascrive gli altri
21: d.i = 65;
22: printf("d.i = %d\n", d.i);
23: printf("d.c = %c\n", d.c); // 65 e' il codice ASCII di 'A'
24:
25: d.f = 3.14f;
26: printf("d.f = %f\n", d.f);
27: printf("d.i = %d\n", d.i); // valore non significativo: f ha sovrascritto i
28:
29: return 0;
30: }
31:
Se avete commenti o osservazioni su questa pagina
mandate un messaggio di posta elettronica a bertoƶƶi@ce.unipr.it
mandate un messaggio di posta elettronica a bertoƶƶi@ce.unipr.it