Author: Ulrich Tuerke
Date: 09:34:24 02/05/02
Go up one level in this thread
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 >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.