File: 11_1.c

package info (click to toggle)
c-cpp-reference 2.0.2-6
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k, lenny
  • size: 8,012 kB
  • ctags: 4,612
  • sloc: ansic: 26,960; sh: 11,014; perl: 1,854; cpp: 1,324; asm: 1,239; python: 258; makefile: 115; java: 77; awk: 34; csh: 9
file content (19 lines) | stat: -rw-r--r-- 656 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/*
 * Define a variable to hold an integer or 
 * a real number (but not both)
 */
union value {
    long int i_value;   /* The real number */
    float f_value;      /* The floating-point number */
} data;
int i;                  /* Random integer */
float f;                /* Random floating-point number */
main()
{
    data.f_value = 5.0;
    data.i_value = 3;   /* data.f_value overwritten */
    i = data.i_value;   /* legal */
    f = data.f_value;   /* not legal, will generate unexpected results */
    data.f_value = 5.5; /* put something in f_value/clobber i_value */
    i = data.i_value;   /* not legal, will generate unexpected results */
}