Re: how is the do loop in the switch code
- From: Eric Sosman <esosman@xxxxxxxxxxxxxxxxxxxx>
- Date: Mon, 31 Mar 2008 09:33:44 -0400
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
.
- References:
- how is the do loop in the switch code
- From: parag_paul@xxxxxxxxxxx
- how is the do loop in the switch code
- Prev by Date: why do the following crash
- Next by Date: Re: why do the following crash
- Previous by thread: how is the do loop in the switch code
- Next by thread: why do the following crash
- Index(es):
Relevant Pages
|