我在大学的编程竞赛中得到了这个问题......
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代码?如果是这样,它试图实现什么,为什么有人会像上面这样做?
答案 0 :(得分:2)
是的,它被称为Duff的设备。
据我所知,它是由某人为电影(星球大战或类似的东西)做特效的人写的。它是用这种方式编写的,以获得最佳性能。
但是,我建议写这样的代码:NO。
保持代码可读!