Author: Miguel A. Ballicora
Date: 10:13:09 02/05/02
Go up one level in this thread
On February 05, 2002 at 12:34:24, Ulrich Tuerke wrote: >On February 05, 2002 at 12:10:21, Tom Likens wrote: > >>On February 05, 2002 at 08:32:35, Antonio Senatore wrote: >> >>>Hi friends: >>> >>>I have one array A[n] and another B[n] (both of the same dimension) and I want >>>to make A = B without using a loop like >>> >>>for (i=0; i < n; i++) A[i] = B[i]; >>> >>>My question is if is it possible to do that without using none kind of loops >>>(and as I am working in C, I can't work with vectors or to use the lib >>>"algorithm") >>> >>>Thanks in advance >>> >>>Antonio >> >>Here ya go, here's a "simple" way to copy an array :) >>Note, from and to are what they imply and count holds the number of >>items to copy. >> >> register int n=(count+7)/8; >> >> switch(count & 7){ >> 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); >> } >> > >Nice -:( > >The "do ... while" in the switch statement is really driving me crazy. > >Regards, Uli I will check K&RII later but IIRC case 0: can be understood as a label and I just figure that the same will be with "do" and "while ()" would be the same as "if () goto". You can jump right into the middle of this loop, crazy isn'it? Regards, Miguel > >>This was invented by Tom Duff a number of years back when he was at >>Lucas Films. By the way, just to head off the question before it's >>asked, - Yep this is *legal* ANSI C. >> >>enjoy, >>--tom >> >>P.S. Or you could just use "memcpy" ;o
This page took 0.01 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.