1 extern void abort(void); 2 extern void exit(int); 3 4 void 5 foo (char *bp, unsigned n) 6 { 7 register char c; 8 register char *ep = bp + n; 9 register char *sp; 10 11 while (bp < ep) 12 { 13 sp = bp + 3; 14 c = *sp; 15 *sp = *bp; 16 *bp++ = c; 17 sp = bp + 1; 18 c = *sp; 19 *sp = *bp; 20 *bp++ = c; 21 bp += 2; 22 } 23 } 24 25 int main(void) 26 { 27 int one = 1; 28 29 if (sizeof(int) != 4 * sizeof(char)) 30 exit(0); 31 32 foo((char *)&one, sizeof(one)); 33 foo((char *)&one, sizeof(one)); 34 35 if (one != 1) 36 abort(); 37 38 exit(0); 39 } 40