0156-duff2.c - scc - simple c99 compiler
(HTM) git clone git://git.simple-cc.org/scc
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Submodules
(DIR) README
(DIR) LICENSE
---
0156-duff2.c (942B)
---
1 /*
2 * Disgusting, no? But it compiles and runs just fine. I feel a
3 * combination of pride and revulsion at this discovery. If no one's
4 * thought of it before, I think I'll name it after myself. It amazes
5 * me that after 10 years of writing C there are still little corners
6 * that I haven't explored fully.
7 * - Tom Duff
8 */
9 send(to, from, count)
10 register short *to, *from;
11 register count;
12 {
13 register n=(count+7)/8;
14 switch(count%8){
15 case 0: do{*to = *from++;
16 case 7: *to = *from++;
17 case 6: *to = *from++;
18 case 5: *to = *from++;
19 case 4: *to = *from++;
20 case 3: *to = *from++;
21 case 2: *to = *from++;
22 case 1: *to = *from++;
23 }while(--n>0);
24 }
25 }
26
27 int
28 main()
29 {
30 short a, b[40];
31
32 send(&a, b, 40);
33
34 return (a == b[39]) ? 0 : 1;
35 }