1 /* The bit-field below would have a problem if __INT_MAX__ is too 2 small. */ 3 #if __INT_MAX__ < 2147483647 4 int a; 5 #else 6 double g (); 7 typedef union { 8 struct { 9 unsigned s:1, e:8, f:23; 10 } u; 11 float f; 12 } s; 13 f(x,n)14f(x, n) 15 float x; 16 { 17 ((s *)&x)->u.e -= n; 18 x = g((double)x, -n); 19 } 20 #endif 21