以上是有效的C代码吗?

时间:2011-06-16 07:09:44

标签: 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 个答案:

答案 0 :(得分:2)

是的,它被称为Duff的设备。

据我所知,它是由某人为电影(星球大战或类似的东西)做特效的人写的。它是用这种方式编写的,以获得最佳性能。

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

保持代码可读!