alloc_float(f)1 int alloc_float(f)
2  float f;
3 {  union
4     {
5       float f;
6       int i;
7     }
8   u;
9   u.f=f;
10   return u.i&~1;
11 }
12 
c_float(int obj)13 float c_float(int obj)
14 {  union
15     {
16       float f;
17       int i;
18     } u;
19 
20   u.i=obj;
21   return u.f;
22 }
23 
main()24 main()
25 { int x=alloc_float(1.2);
26   int y=alloc_float(5.7);
27   int z=alloc_float(c_float(x)*c_float(y));
28 
29   printf("%g\n",(double)c_float(z));
30 }
31