>> any others bright optimisation?
maybe:
void * ReverseBytes(void * buffer, size_t length) {
register unsigned char temp, * p, * e;
if(length) {
for(p = buffer, e = p + (length - 1); p != e; ++p, e--) {
temp = *p;
*p = *e;
*e = temp;
}
}
return buffer;
}