1struct foo 2{ 3 int a, b, c, d; 4 double doubl; 5} s1, s2; 6 7#ifndef ONLY2 8 9struct foo 10structret (s1, i1, i2, s2) 11 struct foo s1, s2; 12 int i1, i2; 13{ 14 if (i1 != i2) 15 { 16 if (i1 < i2) 17 return s1; 18 else 19 return s2; 20 } 21 s2.a = 11; 22 s2.b = 22; 23 s2.c = s1.c; 24 s2.d = s1.d; 25 return s2; 26} 27 28#endif 29 30#ifndef ONLY1 31 32struct foo 33mani (a, b) 34{ 35 return structret (s1, a, b, s2); 36} 37 38init () 39{ 40 s1.a = 1; 41 s1.b = 2; 42 s1.c = 3; 43 s1.d = 4; 44 s1.doubl = 3.1415; 45 s2.a = -1; 46 s2.b = -2; 47 s2.c = -3; 48 s2.d = -4; 49 s2.doubl = 2.71818; 50} 51 52main () 53{ 54 struct foo s; 55 56 init (); 57 s = mani (1, 1); 58 printf ("%d, %d, %d, %d : %f\n", s.a, s.b, s.c, s.d, s.doubl); 59 60 init (); 61 s = mani (2, 1); 62 printf ("%d, %d, %d, %d : %f\n", s.a, s.b, s.c, s.d, s.doubl); 63 64 init (); 65 s = mani (1, 2); 66 printf ("%d, %d, %d, %d : %f\n", s.a, s.b, s.c, s.d, s.doubl); 67} 68 69#endif 70