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