Question to the gallery:

I've noticed many times that char* and int*/void* are not compatible
on the Alpha.  Is this simply an issue of alignment, or are the contents
actually different (eg. one is bit-shifted for some god-awful reason.)

Basically, I need to know if you have two 64-bit values stored
consecutively (e.g. u_int64_t v[2]), is there a portable way to 
get a pointer to, say, the second 8-bit byte in v[1]?  (That is,
the actual second byte in v[1] regardless of machine endianness)

Also, it was IIRC mentioned before that memcpy always "does the right thing"
by copying (e.g. for 32-bit architectures) 1, then 2, then many chunks of 4, 
then 2, then 1 in worst case alignment circumstances -- is that true?

/me speculates what the effect of little-endianness never having been 
invented would have been on the state of the art, not to mention the
global economy.

--
Brian

Reply via email to