>Personaly I rarely bother with using structures in this manner. They = can be >usefull, but one you start messing around with pointers it gets messy = and >you might as well access the bytes within the long directly using = pointers, >e.g. > >void readadc(long *result) >{ >*(((unsigned char *)result)+0) =3D getbyte(); >*(((unsigned char *)result)+1) =3D getbyte(); >*(((unsigned char *)result)+2) =3D getbyte(); >} Thanks for that hint - makes things much simpler! Incidentally is there a similar trick for accessing bytes within global longs without having to use a union,=20 e.g.=20 long reading;=20 =3D byte1; =20 -- http://www.piclist.com hint: The list server can filter out subtopics (like ads or off topics) for you. See http://www.piclist.com/#topics