f(b,c)1 f (b, c)
2      unsigned char *b;
3      int c;
4 {
5   unsigned long v = 0;
6   switch (c)
7     {
8     case 'd':
9       v = ((unsigned long)b[0] << 8) + b[1];
10       v >>= 9;
11       break;
12 
13     case 'k':
14       v = b[3] >> 4;
15       break;
16 
17     default:
18       abort ();
19     }
20 
21   return v;
22 }
main()23 main ()
24 {
25   char buf[4];
26   buf[0] = 170; buf[1] = 5;
27   if (f (buf, 'd') != 85)
28     abort ();
29   exit (0);
30 }
31