-4

I was given this question in my college in a programming contest...

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);
      }
  }

Is the above valid C code? If so, what is it trying to acheive and why would anyone do something like the above?

deepaklearner
  • 151
  • 1
  • 6
  • 22

1 Answers1

2

Yep, it's known as Duff's device.

As far as I can remember it was written by someone doing special effects for a movie (Star Wars or something like that). It was written this way to get maximum performance.

But, would I suggest to write code like this: NO.

Keep your code readable!

Patrick
  • 23,217
  • 12
  • 67
  • 130