comp.lang.c
[Top] [All Lists]

Re: how is the do loop in the switch code

Subject: Re: how is the do loop in the switch code
From: Eric Sosman
Date: Mon, 31 Mar 2008 09:33:44 -0400
Newsgroups: comp.lang.c


parag_paul@xxxxxxxxxxx wrote:
  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);
      }
  }

    Do you have a question?

    Incidentally, despite the suggestive name given to
the function this is not Duff's Device.  Also, there's a
better way to accomplish what this code does: call
memcpy (or perhaps memmove) instead.

--
Eric Sosman
esosman@xxxxxxxxxxxxxxxxxxxx

<Prev in Thread] Current Thread [Next in Thread>
Privacy Policy