f (b, c) | |
unsigned char *b; | |
int c; | |
{ | |
unsigned long v = 0; | |
switch (c) | |
{ | |
case 'd': | |
v = ((unsigned long)b[0] << 8) + b[1]; | |
v >>= 9; | |
break; | |
case 'k': | |
v = b[3] >> 4; | |
break; | |
default: | |
abort (); | |
} | |
return v; | |
} | |
main () | |
{ | |
char buf[4]; | |
buf[0] = 170; buf[1] = 5; | |
if (f (buf, 'd') != 85) | |
abort (); | |
exit (0); | |
} |