Hi John,
On Sun, Mar 16, 2014 at 6:57 PM, John Kasunich <[email protected]> wrote: > > > > On Sun, Mar 16, 2014, at 09:41 PM, Dave Hylands wrote: > > Hi, > > > > I'm jumping in late here, but why not just do: > > > > *(hal_data_u *)data_addr = pin->dummysig; > > > > which is a structure copy, and the compiler will optimize it to use the > > best way of copying based on the size? > > > > I didn't know you could copy structures like that in C. > > Does it work for any size structure? > > When was that added to the language? I'm 99.4% certain > that in the K&R days you had to copy structs yourself. > Is it maybe a C99 thing? Many K&R variants didn't support structure copying. It was an extension to K&R C: http://cm.bell-labs.com/cm/cs/who/dmr/cchanges.pdf It was introduced as part of the language specification when ANSI C was introduced, so its been around for quite a while. It works with any size structure. IIRC gcc uses memcpy (or a function like memcpy) for large structures and optimizes it to do word copies for small structures. I've used it for many many years (I learned C using K&R in university, but fortunately never had to actually use it for working). Function prototypes made C manageable :) -- Dave Hylands Shuswap, BC, Canada http://www.davehylands.com ------------------------------------------------------------------------------ Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech _______________________________________________ Emc-developers mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-developers
