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