2011-06-16 44 views
-3

我得到了我的程序设计大赛大学这个问题...以上有效的C代码?

void duff(register char *to, register char *from, register int count) 
    { 
     register int n=(count+7)/8; 
     switch(count%8){ 
     case 0: do{ *to++ = *from++; 
     case 7: *to++ = *from++; 
     case 6: *to++ = *from++; 
     case 5: *to++ = *from++; 
     case 4: *to++ = *from++; 
     case 3: *to++ = *from++; 
     case 2: *to++ = *from++; 
     case 1: *to++ = *from++; 
       }while(--n >0); 
     } 
    } 

是上述有效的C代码?如果是这样,那么什么是尝试达到目标,为什么会有人做类似上述的事情?

+1

@ phresnel:[Good job asking](http://xkcd.com/233/) – Mehrdad 2011-06-16 07:14:42

+0

[此C代码做什么\ [Duff's device \]?]的可能重复(http://stackoverflow.com/questions/1723270/what-does-this-c-code-do-duffs-device) – 2011-06-16 09:03:02

+0

对不起。我在一个谜题网站上看到了这个问题。 – deepaklearner 2013-07-20 16:41:49

回答

2

是的,它被称为达夫的设备。据我所知,它是由为电影做特效的人写的(星球大战或类似的东西)。它是这样写的,以获得最大的性能。

但是,我会建议编写这样的代码:NO。

保持您的代码可读!