一段玩技巧的C代码,原来也是颇有来头的~~

void foo(char* a, char* b, int len){         switch(len & 7) {         default:                 while (len > 7) {                         len -= 8;                         *b++ = *a++;                 case 7:*b++ = *a++;                 case 6:*b++ = *a++;                 case 5:*b++ = *a++;                 case 4:*b++ = *a++;                 case 3:*b++ = *a++;                 case 2:*b++ = *a++;                 case 1:*b++ = *a++;                 }         } }
 
呵呵,能看出这段代码做啥用的吗?看不出来也不用灰心哈,我拿给纯C论坛的站长看这个,他都还怀疑我给的代码有问题呢。而我也是在知道其功能是strcpy的前提下看懂的。本来没啥,就是写这段代码的人把while循环插到switch的default和case之间,把人弄晕了。如果是面试题,其考点应该是看答题人对switch…case…结构从C到汇编的转换了解如何吧![](http://spaces.msn.com/rte/emoticons/smile_regular.gif)
 
后来再一google,发现原来这段代码也颇有来头,原来说传说中的[Duff’s Device](http://www.lysator.liu.se/c/duffs-device.html),二十好几年前的古董啦~~