home *** CD-ROM | disk | FTP | other *** search
/ ftp.disi.unige.it / 2015-02-11.ftp.disi.unige.it.tar / ftp.disi.unige.it / pub / .person / CataniaB / teach-act / esempi / Strutture_Union / union.c < prev   
C/C++ Source or Header  |  1997-04-09  |  743b  |  31 lines

  1. #include <stdio.h>
  2.  
  3. /* I record con variante si possono implementare in C usando i tipi 
  4.  * unione (idea: variabili di tipo diverso allocate nello stesso spazio
  5.  * di memoria).   
  6.  */
  7.  
  8. typedef union  { int x; float y;} Union;  /* i.e. intero o float */   
  9.  
  10. /* come per le strutture altri tipi di dichiarazione: */
  11.  
  12. union IUF {int x; float z;}; 
  13. union IUF a,b;
  14. union {int s; float r;} c; 
  15.  
  16. main()
  17. {
  18.  
  19.  Union u;       /* il tipo valido e' determinato dall'ultima assegnazione! */
  20.  
  21.  u.y=1000.50;  
  22.  printf("%f",u.y); /* ok u.y e' ben definita */ 
  23.  
  24.  u.x=4;           
  25.  printf("%d",u.x); /* ok u.x e' ben definita */ 
  26.  
  27.  printf("%f",u.y); /* NO!: u.y non e' piu' definita (l'unione ha tipo int dopo
  28.                     * l'istruzione u.x=4! */ 
  29.  
  30. }
  31.